kann PinChange Interrupt Flag nicht zurücksetzen

Gast #2377125
Hallo,

ich versuche seit Stunden verzweifelt das PIN CHANGE INTERRUPT FLAG 0 
zurück zusetzen (Atmega164PA)

Zitat aus Datenblatt:

Bit 0 – PCIF0: Pin Change Interrupt Flag 0
When a logic change on any PCINT7..0 pin triggers an interrupt request, 
PCIF0 becomes set (one). If the I-bit in SREG and the PCIE0 bit in EIMSK 
are set (one), the MCU will jump to the corresponding Interrupt Vector. 
The flag is cleared when the interrupt routine is executed. 
Alternatively, the flag can be cleared by writing a logical one to it.

demnach muss ich doch mit

PCIFR |= (1<<PCIF0);

dieses verdammte Flag clearen können (auch aus der IR-Routine heraus) 
oder??

aber es bleibt felsenfest gesetzt laut AVR-Studio...

bitte um Hilfe

Gruß Stefan
Gast #2377293
Bei PIC Controllern muss man den Port lesen zu dem der entsprechende 
Pin gehört, sonst wird der Pin immer noch als "changed" erkannt und das 
Flag sofort wieder gesetzt.
Gast #2378412
auf realer Hardwar mit JTAG

es scheint sich um ein EMV Problem zu handeln.

Ich werde permanent mit mit dem PinChange-Interrupt zugespamt, und zwar 
wenn ich mit JTAG Debugge!

Im normalem Betrieb werden kaum "falsche" Interrupts ausgelöst

Warum ich allerdings das Flag nicht zurücksetzen kann (per Mausklick via 
JTAG, oder per Anweisung im Programm), obwohl im Code an dieser Stelle 
alle Interrupts deaktiviert sind weis ich immer noch nicht.
Gast #2378594
SteFan schrieb:
> obwohl im Code an dieser Stelle
> alle Interrupts deaktiviert sind weis ich immer noch nicht.

Steht denn in PCMSK0 auch 0x00?
Du kannst alle Interrupts deaktivieren, aber die Flags können dennoch 
gesetzt werden, was ja auch nicht schlimm ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.