An der Dauer des IRQ liegt es mit Sicherheit nicht. Bist Du Dir sicher, daß die Signale sauber sind (ohne Prellen ect.) ?
Hast Du den IRQ sicher so eingestellt, daß er auf Flanke triggert ? Oder konkret: was steht in ISC10 und ISC 11 ?
Sieht das jetzt so aus ?:
Code:
volatile int winkel1, winkel2;
ISR(SIG_INTERRUPT0){
if (PINC & (1<<PINC2)){winkel1--; /*LED(2,1);LED(3,0);*/}
else { winkel1++;/* LED(2,0); LED(3,1);*/}
}
ISR(SIG_INTERRUPT1){
if (PINC & (1<<PINC3)){winkel2--; /*LED(2,1);LED(3,0);*/}
else {winkel2++;/* LED(2,0); LED(3,1);*/}
}
Änderst Du winkel1 oder winkel2 ausserhalb des ISR ?
Lesezeichen