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
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ß
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.
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.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.