Forum: Compiler & IDEs PCINTx und INTx


von Matthias L. (mcl024)


Lesenswert?

Hallo

Wo ist der Unterschied zwischen PCINTx und INTx ?
Der Attiny13 hat z.B. nur einen INT0 aber an allen I/O Pins PCINT's. 
Bedeutet das, dass ich den einen externen Interrupt von allen I/O Pins 
auslösen kann (quasi Pin Change INTx) oder bedeutet das, dass ich 6 
externe Interrupts auslösen kann.
Zweites kann ich mir nicht vorstellen da es ja nur einen INT0_vect gibt.
Komisch aber ist trotzdem das bei Atmel in der Liste wo alle 
Mikrocontroller aufgeführt sind mit all ihren Eigenschaften steht, dass 
der Attiny13
6 External Interrupts hat

Vielen Dank im vorraus für die Antworten.

Gruss mcl024

von Johannes M. (johnny-m)


Lesenswert?

Es gibt im Prinzip zwei gravierende Unteschiede: Die Pin Change 
Interrupts reagieren zunächst mal grundsätzlich auf alle Pegelwechsel, 
während die "eigentlichen" externen Interrupts (INT0, INT1 usw.) 
konfigurierbar sind (steigende, fallende Flanke, beide Flanken oder 
Low-Pegel). Außerdem sind die Pins für die Pin Change Interrupts in 
Gruppen zusammengefasst (die i.d.R. den I/O-Ports entsprechen), wobei 
alle aktivierten Pins einer Gruppe ein und dasselbe Interrupt-Flag 
auslösen, und damit auch den µC in den selben Interrupt-Vektor springen 
lassen. Bei den externen Interrupts hingegen ist immer nur ein Pin 
einem Interrupt-Vektor zugeordnet.

ATMEL zählt offensichtlich bei den Angaben nicht die Interrupt-Vektoren, 
sondern die I/O-Pins, die einen Interrupt auslösen können, was in meinen 
Augen ein wenig irreführend ist.

von Matthias L. (mcl024)


Lesenswert?

Ok schonmal schönen Dank für die Antwort.

Wenn ich jetzt aber mehere Taster auswerten möchte, aber dieses muss 
absolut Zeitunabhängig passieren. Also nicht mit einem Timer Interrupt 
und dann die Pins abfragen. Dann kann ich doch nur die INTx nehmen 
oder??

von Dirk B. (sharandac)


Lesenswert?

Hallo,

du könntest die Tasten auch an die PCINTx anschliessen, du musst dich 
nur um die Auswertung selber kümmern welche Taste jetzt eigentlich 
gedrückt wurde. Dazu musst du den letzten Zustand sichern um 
festzustellen welcher Eingang sich geändert hat. Allerdings muss man 
auch sagen das die PCINTx sich nicht für Tasten eignen, weil die sehr 
stark prellen können und so die Auswertung schwer machen. Ideal sind die 
PCINTx allerdings wenn man z.B. Grayencoder anschliessen will, da sich 
immer nur eine Stelle ändert im gegensatz zum Binärcode.

CA Dirk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.