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) brachte den Erfolg. Eigentlich gar nicht schwer.
Und so hat es geklappt:
Ich habe den PCINT16 an Port PK0 gewählt
Aber so richtig verstanden habe ich das Ganze noch nicht wirklich, naja wenn's funktioniert.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(); }
Mit freundlichen Grüßen, Kai
Lesezeichen