Unterschied zwischen INT0 und PCINT0

OP #1531194
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
Gast
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ß
Gast
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.
Gast
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.
Gast
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
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.