PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt RN-Mega2660



Tido
12.12.2009, 16:14
Hallo,

kann mir jemand den Unterschied der Pins INTx (z.b. PD0) und PCINTx (PB0) erklären?
Ich muss schnellstmöglich auf Pegeländerungen an 6 verschiedenen Leitungen reagieren, benötige aber die SCL- und SDA-Pins (Int0 und Int1) für HW-I²C. Kann man stattdessen auch die PCINT-Pins verwenden?

Jaecko
12.12.2009, 17:09
Naja ein PCINT ist ein Pin Change Interrupt, d.h das Ding reagiert nur auf Pegelwechsel.
Ein INT kann auch auf Low Level reagieren, d.h. der Interrupt wird solange ausgeführt, wie der Pin auf GND liegt.

Bei PCINT ist es auch so, dass man dort nicht jeden PIN extra konfigurieren kann sondern nur gruppenweise. (Datenblatt ca. ab S. 115).
D.h. du müsstest in der ISR selbst abfragen, welcher der 8 Pins pro Gruppe jetzt der Auslöser war.

Tido
12.12.2009, 18:10
Ah, danke.

Mit dem "Einschränkungen" kann ich leben.

oratus sum
01.05.2010, 10:54
Sry das ist bisschen schon älter das Thema aber ich will da jetzt nciht was neues aufmachen.

Wenn ich jetzt so eine Gruppe konfiguriere als PCINT, kann ich die anderen Ports noch immer normal benutzen? Oder ist es so, dass ich wenn mal eine 8er Gruppe als PCINT konfiguriert ist, alle Ports nurnoch Eingang und somit unbrauchbar geworden sind, auch wenn ich eigentlich nur 1 PCINT benutze.

Jaecko
01.05.2010, 11:50
Es können alle anderen Pins weiterhin normal verwendet werden. In einer Maske kann man auswählen, welche Pins einen PCINT auslösen sollen.

Im Prinzip genau so wie bei nem ADC-Port; wenn da ein paar Pins als ADC verwendet werden, sind andere auch noch frei verwendbar.

oratus sum
01.05.2010, 22:04
Okay vielen Dank funktioniert ausgezeichnet!