mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit TIM0_OVF


Autor: Chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!!

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn er bei der ISR auf die letzte Zeile kommt fängt er wieder in der 1.
Zeile der ISR an.
Habe keine Ahnung warum.

mfg Chris!

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.