Forum: Mikrocontroller und Digitale Elektronik Mehrere pins eines Ports als Interruptquelle beim Atxmega 32A4U


von Karsten B. (karstenbrandt)


Lesenswert?

Hallo Gemeinde,

ich habe folgendes Problem:

Am PortB möchte ich die Pins PB2 und PB3 als externe Interrupts INT0 
verwenden.
Wie die Konfiguration funktioniert ist schon klar.
Das Ganze geht auch bei einem Pin als Interrupt-Quelle wunderbar.
Wie aber kann ich bei zwei Quellen an einem PORT in der ISR die 
auslösende Quelle bestimmen?:

ISR(PORTB_INT0_vect)
{
  if(PINPB2 ist Quelle)
  {
    //mache was
  }
  if(PINPB3 ist Quelle)
  {
    //mache was
  }
}

Alle Beispiele im WEB und auch hier im Forum nehmen nur einen Pin als 
externe Interrupt-Quelle.
Im Manual bzw. Summary für den XMega finde ich auch keinen brauchbaren 
Hinweis. Vielleicht geht es aber auch nicht.

Gruß

Karsten

von Karl K. (leluno)


Lesenswert?

du müsstest die pins als input-pin abfragen und dadurch auswerten 
können.

Es geht aber auch so:
1
if(sec==36){PCINT28_start();}//d4-q1
2
if(sec==37){PCINT28_stop();}
3
4
if(sec==38){PCINT29_start();}//d5-q2
5
if(sec==39){PCINT29_stop();}
Auswertung jeweils bei stop

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.