Forum: Mikrocontroller und Digitale Elektronik Unterschied zwischen INT0 und PCINT0


von Torsten B. (torty)


Lesenswert?

Froh Weihnachten zusammen..

Kann mir bitte kurz jemand den Unterschied zwischen den INT0 und den 
PCINT0 erklären ?
Was im Datenblatt steht, macht mich nicht schlau und im Tutorium kann 
ich PCINT nicht einmal finden.
Schöne Feiertage Euch allen.

Danke
Torsten

von Malte (Gast)


Lesenswert?

dir auch frohe weihnachten,

bei INT0 kannst du auf die Positive bzw. negative Flanke einen Interrupt 
auslösen.

Bei PCINT0 (von PIN Change..) bekommst du nur auf eine Änderung einen 
Interrupt. Ob es High oder Low ist müsstest dann selber prüfen.

gruß

von Flo (Gast)


Lesenswert?

Int0 ist ein Interrupt, der bei glaub allen AVRs vorhanden ist und mit 
so ziemlich jeder Sleep / Powerdown /etc trotzdem funktioniert

Bei neueren AVRs gibts zusätzlich den PCINT (Pinchangeinterrupt), der 
alte INT0 ist wahrscheinlich aus Kompatibilitätsgründen auch noch mit 
drin.

Unterschiede gibts praktisch nicht zwischen den beiden.

von Barny (Gast)


Lesenswert?

Flo schrieb:
> Int0 ist ein Interrupt, der bei glaub allen AVRs vorhanden ist und mit
> so ziemlich jeder Sleep / Powerdown /etc trotzdem funktioniert
>
> Bei neueren AVRs gibts zusätzlich den PCINT (Pinchangeinterrupt), der
> alte INT0 ist wahrscheinlich aus Kompatibilitätsgründen auch noch mit
> drin.
>
> Unterschiede gibts praktisch nicht zwischen den beiden.

Dass st leider falsch.
Neben den Sleepmodes die nur mit INT0 aufgeweckt werden.
Weiters haben INT0, INT1,... eine eigene Interruptroutine.

Bei PCINT muß man nicht nur low/high überprüfen, sondern man muß auch 
noch überprüfen welcher der PCINT Pins der Schnittstelle den Interrupt 
ausgelöst hat.
Also hat man bei den INT Interrupts wesentliche Vorteile gegenüber 
PCINT.

von spess53 (Gast)


Lesenswert?

Hi

Int0, und je nach Controller INT1...INT7, besitzen jeweils eine eigene 
Interruptroutine. Für die PC-Pins gibt es so eine Art 'Sammelinterrupt', 
meist für die Pins eines Ports. Welche(r) PC-Pin einen Interrupt 
auslösen darf wird mit einem Mask-Register festgelegt. Der Aufwand für 
die Auswertung von PinChange-Ereignissen ist in der Regel höher wie bei 
INT0 (...INT7).

MfG Spess

von (prx) A. K. (prx)


Lesenswert?

Dazu kommt noch, dass je nach Controllertyp der eine oder andere 
INTx-Pin nicht nur flankengesteuert sondern auch pegelgesteuert arbeiten 
kann. Bei PCINT geht das schon definitionsgemäss nicht.

von Peter D. (peda)


Lesenswert?

Es sind 2 völlig unterschiedliche Einheiten auf dem AVR.

Die externen Interrupts nimmt man hauptsächlich dazu, schnell auf 
externe Peripherie zu reagieren, z.B. CAN- oder Ethernet-Controller.
Für schnarch langsame Sachen (mechanische Kontakte) ist er schlecht 
geeignet, da er die Behandlung nur unnötig aufwendig macht.


Die Pin-Change-Interrutps sind dagegen gedacht, um Strom zu sparen, d.h. 
aus dem Power-Down-Mode aufzuwecken. Deshalb auch die Möglichkeit auf 
die Flanke aufzuwachen.
Und daher ist es in der Regel nicht nötig, zu wissen, welcher der 
freigegebenen Pins den Interrupt ausgelöst hat. Das macht dann besser 
das Hauptprogramm, z.B. die Entprellroutine im Timerinterrupt.

Üblicher Weise ist die einzige Aufgabe des Pin-Change-Interrupts, sich 
selbst zu disablen und den Sleepmode zurückzusetzen.


Peter

von screwdriver (Gast)


Lesenswert?

Prinzipiell eignen sich doch Bedientasten, besonders wenn sie Form einer 
Matrix angeordnet sind, ideal zum Anschluss an die PC-Interrupts.
Das widerspricht zwar meiner (und von diesem Forum geprägten!) Vorliebe 
zu timer-entprellten Kontakten, aber die Analogie in der Auswertung von 
Interruptquelle der PC-Ints und einer gedrückten Taste in einer Matrix 
ist doch schon bemerkenswert ähnlich - wie ich finde.

screwdriver

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.