Hallo miteinander, mein ziel ist es eine Uhrfunktion zu implementieren und die uhrzeit auf ein display anzuzeigen. Der Algorithmus für die Uhr funktioniert, aber leider zu schnell. Ablauf: -Die Uhrzeit wird in einem dreistelligen array mit Startwert initialisiert -Timer 0 (8Bit) wird gestartet und bei Overflow wird eine Variable (tick) hochgezählt -Sobald die Variable tick einen bestimmten Wert erreicht hat wird zur Uhrzeit eine Sekunde addiert. Bei 8Mhz (externes Quarz) und 8Bit Timer müsste die Sekunde, nach 31250 Oerflows erreicht sein. Aber sobald ich den Controller flashe rast mir die Zeit auf dem Display davon, egal welchen Wert ich für die Overflows angebe. Bitte schaut mal über den Code im Anhang. Da kann nur ein riesen Denkfehler von mir drin sein!
Ohne mir deinen Code anzusehen, hast Du deinem Compiler deine Taktfrequenz mitgeteilt? Und sind die Fuses richtig eingestellt?
Klaus schrieb: > Bitte schaut mal über den Code im Anhang. Da kann nur ein riesen > Denkfehler von mir drin sein! Eher ein klassischer Programmierfehler:
1 | if(tick=31250) |
Das ist immer wahr. Viele Grüße, Simon
find ich nicht peinlich - ist ein fahler den man schnell mal machen kann und mir ists beim drüberschauen auch nicht aufgefallen (peinlich! ;) ich hab mir unter java angewöhnt vergleiche umzustellen, also (1234 = var), da gibts bei einer zuweisung einen compilerfehler.
Sowas passiert wenn man Compilerwarnungen ignoriert. Der GCC sagt da sowas wie "suggest parenthesis around assignment used as truth value" oder so.
> Sowas passiert wenn man Compilerwarnungen ignoriert.
Ich bin ja schon länger dafür, -Wall, -Wextra, -Wpedantic und -Werror
per Default anzustellen.. ;-)
...und den Optimizer auf -Os sowie einen Button "Flashen". Start without debugging funktioniert auf meinem aktuellen AS6 zumindest nicht. Ingo
g457 schrieb: >> Sowas passiert wenn man Compilerwarnungen ignoriert. > > Ich bin ja schon länger dafür, -Wall, -Wextra, -Wpedantic und -Werror > per Default anzustellen.. ;-) Also die ersten beiden auf jeden Fall. Wpedantic kenne ich nicht und Werror ist mir zu nervig wenn beim Debuggen (mein Debugger heisst printf...) mal eine Variable nicht genutzt wird oder so.
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.