Sprung in Interrupt Routine nach Interrupt Enable AtMega128

Gast #760339
Lesenswert?
• ▲
▼
Hallo!

Folgendes Problem.

Verwende einen AtMega128.
Entwicklungsumgebung: AvrStudio mit WinAVR.

Es wird ein Echo mittels Interrupt0 bei fallender Flanke detektiert.
Der momentane Zählerstand wird dan in einem Register gespeichert
und dann zum PC übertragen.
Funktioniert auch das erste Mal.
Doch beim zweiten Mal springt das Programm nach dem aktivieren
des Intterupt0 sofort in die dazugehörige Inetrruptroutine
und es wird natürlich ein falscher Zählerstand ausgelesen.
Nach einem Reset funktioniert das ganze wieder für einmal.

Vl. hatte schon jemand mal ein ähnliches Problem.

Mit bestem Dank im Voraus.

thomas
#760462
Lesenswert?
• ▲
▼
thomas wrote:
> Doch beim zweiten Mal springt das Programm nach dem aktivieren
> des Intterupt0 sofort in die dazugehörige Inetrruptroutine
> und es wird natürlich ein falscher Zählerstand ausgelesen.

Dann wird der AVR wohl recht haben und es ist inzwischen eine Flanke 
aufgetreten.

Der AVR kann ja nicht wissen, welches Ereignis Du willst, er setzt das 
Flag sobald das erste Ereignis eintritt.

Wenn Du willst, daß alle Ereignisse vor der Interruptfreigabe ignoriert 
werden, mußt Du vor der Freigabe erst das Interruptflag löschen, indem 
Du es setzt.


Peter
Gast #763508
Lesenswert?
• ▲
▼
hallo!

habe das Problem gelöst.
Bin mit meinem JTAG durchgesteppt.
Dabei ist aufgefallen, dass nach dem enbable des Int0 das Int0Flag 
gesetzt wurde.
Habe jetzt einfach nach dem enable das  Int0Flag manuell zurückgesetzt.

Danke für die Antworten.

thomas

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.