externer Interrupt geschafft
Hallo,
ich möcht das von mir begonnene Thema noch beenden. Eure Antworten haben mich zumindest auf den Weg gebracht. Die Lib half mir nicht wirklich weiter, aber der Hinweis zum Pin Change Interrupt und zum Datenblatt (Datenblatt - eher Datenbuch mit 447 Seiten :confused:) brachte den Erfolg. Eigentlich gar nicht schwer. :) Und so hat es geklappt:
Ich habe den PCINT16 an Port PK0 gewählt
Code:
DDRK &= ~(1<< PINK0); // PORT K PIN 0 als Eingang
PORTK |= (1<< PINK0); // Pull Up eingeschalten
PCMSK2 = (1<< PCINT16); // Bit 0 im Pin Change Mask Register PCINT16 gesetzt
PCICR = (1<<PCIE2); // Pin Change Interrupt Control Register
// Bit 2 des Pin Change Interrupt Enable gesetzt
ISR(SIG_PIN_CHANGE2) // Interruptroutine
{
if (status_RL ==1)
{
RA_M5++;
}
else if (status_RL ==2)
{
RA_M5--;
}
if ((RA_M5> 20) || (RA_M5< -20))
{
ARM_STOP();
}
//reti();
}
Aber so richtig verstanden habe ich das Ganze noch nicht wirklich, naja wenn's funktioniert.
Mit freundlichen Grüßen, Kai