-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Hilfe: Porterweiterung mit 5 74HC573 macht was es will :-(

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    30.06.2004
    Beiträge
    50

    Hilfe: Porterweiterung mit 5 74HC573 macht was es will :-(

    Hallo Ihr,
    nachdem ich das super Forum hier gesehen habe, habe mich erstmalig an die AVRs rangewagt. Als Programmiersprache habe ich Bascom ausgewählt.
    Habe mir den Programmieradapter mit 74244 gebaut und aus Verzweiflung 2 Boards gebaut. Eins mit dem 2313 und eins mit Atmega8, aber beide mit dem selben Fehler.
    Ich hatte vor mir so eine Rheinturmuhr zu bauen (Lauflicht). Dazu habe ich mir die Porterweiterung aufgebaut, so wie unter
    http://www.roboter-projekte.de/porterweiterung.htm
    beschrieben mit 5x74HC573.
    Alles funktioniert im Prinzip, nur macht die "Zehner"-Anzeige der Stunden was sie will.
    Mal zählen die einer Std bis 9 und anstelle die erste Zehner h angeht, geht die zweite h an.
    Mal zählen die einer h bis 9 hoch, obwohl beide zehner h an sind.
    Soll ja nur bis 24 anzeigen......
    Ich weiss nicht wo der Fehler liegt, das kann nach Prog. nicht sein!

    Ich hoffe ihr könnt einem Anfänger den Frust nehmen....hänge schon seit Wochen hier dran.

    Programm hier als Anhang.


    Grüße
    Heinz
    Angehängte Dateien Angehängte Dateien

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    01.01.2004
    Beiträge
    96
    als erstes würde ich bei

    Portd.X = 1
    ' Waitms 0.5
    Portd.X = 0

    Waitms 1 einfügen, damit das Latch auch die Daten richtig übernehmen kann, dann würde ich bei jeder Änderung der Stunde mit Print mir die aktuellen Werte anzeigen lassen, dazu sollte die Uhr natürlich etwas schneller laufen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    30.06.2004
    Beiträge
    50
    Hallo,

    danke für die Antwort.
    Das mit dem Warten zur Übernahme habe ich bis zu 5ms ausprobiert, aber da treten dann andere Probleme auf. Ich nehme an das dann wieder der Interrupt ausgelöst wird bevor die Anzeige Routine zu beendet ist.

    Wie meinst du das mit Print?
    Wohin kann ich mir denn die Werte senden lassen?

    Gruß
    Heinz

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    01.01.2004
    Beiträge
    96
    Unter Bascom kannst Du mit Print die Werte über die serielle Schnittstelle ausgeben. Die serielle Schnittstelle des MCs kannst Du über einen Pegelwandler an die serielle Schnittstelle Deines PCs anschließen. Die Werte werden dann in einem Terminalprogramm angezeigt.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    01.01.2004
    Beiträge
    96
    Hallo Heinz,

    kannst Du bitte mal testen, ob das Programm funktioniert? Habe es eben mal schnell im Editor geschrieben. Bin am überlegen, ob ich die Uhr nicht nachbaue sieht garantiert super in einem schwarzen Alurohr aus.

    Gruss Frank

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    30.06.2004
    Beiträge
    50

    Prog ausprobiert

    Hallo,
    habe Dein Progr nicht übertragen können.
    Bascom macht mir überall bei den Zeilen mit Shift verschiedene
    Fehlermeldungen.

    Ansonsten probiere ich das gerne wieder aus.

    PS: Sieht ja professioneller aus als mein Prog

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    01.01.2004
    Beiträge
    96
    Hallo Heinz,

    ich habe die Fehler im Programm korrigiert, das Programm wird jetzt ohne Fehler compiliert. Gleichzeitig habe ich die Routinen für die Aktualisierung der Zeit und der Anzeige aus der Interrupt-Routine herausgenommen und in ein Unterprogramm gepackt, damit die Interrupt-Routine möglichst kurz ist.

    Gruss Frank

    P.S. danke für die Blumen, Dein Ansatz zur Lösung ist aber auch nicht schlecht, er benötigt nur mehr Speicher
    Angehängte Dateien Angehängte Dateien

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    30.06.2004
    Beiträge
    50
    Hallo Frank,

    also, es funktioniert auch nicht so ganz.
    Sek: Einer und Zehner ist ok,
    Min: Einer zählen bis 9 hoch , wechsel auf Zehner ist ok,
    wenn aber die 5te Zehner angehen soll, (49 Min) stimmt die Anzeige gar nicht mehr,
    Std: Zählen nur bis 8 hoch


    Aber: Wo ist denn der Fehler in meinem Programm mit der Stundenanzeige? Meine Stundenanzeige geht ja mal und mal nicht, d.h. der erste Durchlauf funktioniert nicht, der 2te geht.
    Sonst funktioniert ja alles.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    01.01.2004
    Beiträge
    96
    If Std_e >= 4 Then
    If Std_z = 2 Then
    Std_e = 0
    Std_z = 0
    For X = 0 To 10
    S_std_e(x) = 1
    Next X
    For X = 0 To 3
    S_std_z(x) = 1
    Next X
    Set S_std_z
    End If
    End If

    Wofür verwendest Du Set S_std_z? Das ist der einzige Befehl, der mir etwas spanisch vorkommt.

    Weiter würde ich in der Initialisierung die Werte für Sec_e, Sec_z ... gleich 0 setzen. Bei den meisten Werten ist das zwar egal, weil spätestens nach dem 2. Durchlauf Dein Programm die Werte richtig gesetzt hat, aber gerade bei Std_z spielt es eine große Rolle, wenn durch Zufall Std_z größer 2 ist, dann wird ein ganzer Programmteil nie ausgeführt, die Stunden zählen von 0 bis 9 durch und bei den Zehnern tut sich nichts.

    Mit diesen Änderungen müsste Dein Programm funktionieren.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    30.06.2004
    Beiträge
    50
    Hallo Frank,

    ich verzweifel bald, es geht immer noch nicht.
    Aber danke für die Hilfe.
    "Set" war ein Versehen...schon mal gut das andere draufschauen..man wird ja doch Betriebsblind

    Grüße

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •