Probleme mit TIM0_OVF

Gast #49014
Lesenswert?

Hy Leute, ich hoffe es kann mir wer helfen!

Habe erst angefangen in CodeVision zu programmieren.
Hab voher Assembler programmiert.

Also ich wollte eine einfache Uhr programmieren um einmal
etwas mit Timer Interrupts auszuprobieren.
Habe das Programm mit AVRStudio simuliert und bin draufgekommen
das der Timer0 Interrupt aufgerufen wird.
Das Problem ist jetzt dass das Programm von der ISR nicht mehr
wegkommt. d.h. das Programm bleibt immer in der ISR des Interrupts und
springt nicht mehr ins Hauptprogramm zurück.

Wo könnte das Problem liegen, weiß jemand Rat?

mfg Chris!!
Angehängte Dateien:
Gast #49015
Lesenswert?

sieht auf den ersten Blick zumindest korrekt aus.
temp in der ISR solltest du allerdings als static declarieren, hat aber
nichts mit dem von dir beschriebenen Fehler zu tun. Wenn du im
Einzelschrittbetrieb vorgehst, siehst du doch, an welcher Stelle es
"hängt". Breakpunkt an den Einsprung setzen, laufen lassen und dann
mit F11 immer Schritt für Schritt.
Ich habe jetzt keine Lust, das Ding zu testen.
Gast #49017
Lesenswert?

habs mal versucht, zu compilieren, irgendwas mit dem LCD-Kram haut da
nicht, also Essig.
Kann natürlich gut sein, dass sich dein Hauptprogramm im Teil
delay_ms() aufhält (bei 250ms ist die Wahrscheinlichkeit recht hoch)
wenn der int kommt. Das sieht dann so aus, als ob direkt ein neuer int
kommt. Setz doch mal einen Breakpoint auf den Beginn der ISR, wenn er
da ankommt, cycle-counter auf 0 setzen und wieder auf F5, dann siehst
du, ob die timer-Zeit abgelaufen ist.
Ich schätze mal, das funktioniert alles und du merkst es nicht :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren