ATMEGA644P Interrupt in ISR

Gast #2326717
Lesenswert?

Guten Abend zusammen,

mein Problem wäre folgendes: In meinem Programm wird per Pin Change 
Interrupt eine ISR aufgerufen. In dieser ISR muß ich warten, bis der 
entsprechende Pin, welcher -auch- die ISR steuert, wieder die Flanke 
ändert. Nun nimmt dies der AVR -laut AvrStudio4- natürlich zum Anlaß, 
nach verlassen der ISR sofort diese wieder aufzurufen. Gibt es 
irgendeine Möglichkeit, das zu unterbinden? Das löschen des 
dazugehörigen Interruptflags in PCIFR nach Auftreten des Interrupts bzw 
entsprechendem Bit im PCMSK-Register innerhalb der ISR bringt nichts. 
Außerhalb kein Problem. Auf Int0...2 kann der Pin aufgrund der gegebenen 
Hardware nicht gelegt werden. Es bleibt augrund der relativ hohen 
Frequenz des Taktes am Interrupt-Pin (20 MHz AVR:1 MHz Takt am PCINT) 
kaum Zeit für die Ausführung von Kommandos.

Vielen Dank & Viele Grüsse
Gast #2326729
Lesenswert?

Wenn ich Dich richtig verstanden habe, willst Du also per Interrupt auf 
die Änderung an einem Pin reagieren - und zwar derart, dass Du auf eine 
erneute Änderung des entsprechenden Pins wartest. Diese löst den 
Interrupt jedoch erneut auf, was Dein Problwm ist.

Warum verwendest Du nicht einfach ein Bit, welches djen aktuellen Status 
speichert ?

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