Hallo, ich habe mich jetzt seit 2 Wochen in die Microcontrollerprogrammierung Assembler eingearbeitet und als erstes eigenes Projekt eine kleine Uhr. Das Programm ist noch ein bisschen gefrickelt (in Hinsicht auf die Variablenbenennung und Kommentierung). Technisch funktioniert die Uhr auch so weit, dass ich mit 4 7-Segment-Displays eine Stunden:Minuten-Anzeige habe. (in der Asm-datei zählt er die Zeit mit 100facher Geschwindigkeit zum Testen). Die Sekunden werden gezählt, aber nicht angezigt, bzw. nur als Blinker. Mein Problem ist nun, dass die Anzeige flackert. Mit dem angehängten Code z.Bsp. bei 01 50 (also 1Uhr 50). Ich hatte probiert, "zeit" (also im sram" per Y-Pointer zu ändern, aber es hat im Prinzip nichts geholfen. Die Register, die im mainloop verwendet werden zu scihern hat auch nichts geholfen. Der atmega8 sitzt auf einem Board von Sisy und die Anzeige ist auf einem kleinem Steckboard untergebracht. Wenn ich statt dem SRAM, Register verwende, habe ich kein Problem mit der Anzeige (aber fast alle Reigister verbraucht)
@ Gerd (Gast) Erstmal hast du dich im Forum geirrt. Hier in der Codesammlung sollten nur getestete, möglichst fehlerfreie und wiederverwendbare Projekte rein, keine halbfertigen Sachen oder Anfragen zu Fehlern. In deiner ISR musst du das SREG sichren, machst du nicht, das spuckt dir in deine Hauptschleife. Die Formatierung lässt zu wünschen übrig. Kommentare sollten eindeutig und richtig sein, z.B. deine Beschreibung des Interruptvektors ist falsch. Multilexen von Anzeigen macht man in einem Timer-Interrupt. Den hast du schon, warum nutzt du ihn nicht? MFG Falk
danke für die Antwort. darauf aufbauend (aber komplett neu programmiert) mein neuse Programm in der Codesammlung. Diesmal ohne Fehler (soweit ich weiss) und komplett kommentiert und (hoffentlich) auch richtig formatiert
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.