Forum: Mikrocontroller und Digitale Elektronik Pin change event (atemag 644)


von Steffen (Gast)


Lesenswert?

Hallo,

ich hab jetzt schon ziemlich viel gesucht aber leider noch keine (für 
mich als Anfänger verständliche) Erklärung zu Pin change interrupts 
gefunden.

Folgende Fragen habe ich:

-> Ist für jeden Pin am controller ein pin change interrupt möglich?

-> Wie kann ich diese aktivieren und abfangen?




Ich danke euch!

von Markus K. (lordpsycholus)


Lesenswert?

Also, so ein Blick ins Datenblatt kann Wunder wirken...

Zu deiner ersten Frage: ja, alle I/O-Pins (also alle außer 9-13, 30-32) 
können einen Pin change interrupt auslösen.

Zu zweitens wäre es zunächst hilfreich, wenn wir wüsten, in welcher 
Sprache du programmierst. Hier mal grob angerissen:

 - Datenblatt besorgen von www.atmel.com (und nich bloß die Summary) und 
auf Seite 2 die Pins raussuchen, die einen PCINT auslösen sollen
 - die PCINTs sind in 4 Gruppen à 8 Pins unterteilt, dazu im PCICR 
Register die PCINT-Bits der jeweiligen Gruppe setzen (auf 1), in denen 
du die Pins überwachen willst (vgl. Seite 62)
 - für die Pins, für die ein PCINT ausgelöst werden soll, musst du noch 
die entsprechenden Bits in den Registern PCMSK0-PCMSK3
 - Interrupts aktivieren mit dem 'sei' Befehl
 - zum Thema wie man Interruptfunktionen in deiner Programmiersprache 
implementiert, das AVR-Tutorial hier auf der Seite befragen, ist sehr 
gut beschrieben (oder die Seite deines Vertrauens)

Falls du noch Fragen hast, schreib einfach wieder.

Gruß,
Markus

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.