Hallo liebe Gemeinde, ich möchte bei einem ATmega644 den PCINT3 benutzen. Also meine Signale kommen auf Port D an. Die Signale sollen einen Interrupt auslösen, wenn an einem der Eingänge eine fallende Flanke auftritt. Wie ich hier gelernt habe, habe ich erst mal danach gesucht. Leider ohne brauchbares Ergebnis. Auch die Lektüre des Datenblattes brachte mich nicht weiter. Auf Seite 60f. wird erklärt, wie man die Flanken über ISC21, ISC20 – ISC00, ISC00 für PCINT0 bis PCINT2 einstellen kann. Völlig offen bleibt jedoch, wie dies für den PCINT3 einzustellen ist. Auf welche Flanke oder welches Potential reagiert der PCINT3? Wie kann ich die fallende Flanke einstellen? Gruß Guido
Guido Scheidat schrieb: > Auf Seite > 60f. wird erklärt, wie man die Flanken über ISC21, ISC20 – ISC00, ISC00 > für PCINT0 bis PCINT2 einstellen kan Du verwechselst da wohl gerade die 'normalen' Interrupts mit den PinChange-Interrupts...
Guido Scheidat schrieb: > Wie kann ich die fallende Flanke > einstellen? Garnicht. Pin-Change heißt, beide Flanken. Du mußt das in Software lösen
1 | |
2 | |
3 | |
Peter
Gast
#1655482
Guido Scheidat schrieb: > Wie kann ich die fallende Flanke > einstellen? Gar nicht. Interrupt nur bei fallender (oder nur bei steigender) Flanke geht nur auf den "External Interrupts INT2:0". Alle anderen reagieren immer auf jeden Flankenwechsel. Da bleibt dir nichts anderes übrig, als in der ISR selber auszuwerten, ob das jetzt eine fallende oder steigende Flanke war. Oliver
Ah! Jetzt habe ich begriffen. EICRA – External Interrupt Control Register A bezieht sich ja auf die externen Interrupts. Bei den Pin change Interrupts kann ich ja nie die Flanke einstellen. Ich kann nur die Pins maskieren. Das hat mir sehr weiter geholfen - DANKE!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.