Hallo,
wahrscheinlich kann ich mal wieder nicht lesen...
Ich schicke einen Tiny26 mit
schlafen. Funktioniert auch. Aufwachen soll er durch einen 0-Pegel an INT0.
Das funktioniert leider nicht.
Vor der CPUSleep Anweisung kommt ein
In der Interruptroutine passiert fast nichts:
Ich habe natürlich getestet, ob die Interruptroutine angespungen wird. Dazu habe ich das Sleep rausgenommen und in der ISR INTO eine LED blinken lassen. Also, die Routine wird angesprungen, daran kann es nicht liegen. Ich habe auch geschaut, ob im Sleep-Mode ein HIGH-Pegel am INT0 Pin liegt. Und ob der Pegel auf 0 geht bei Tastendruck. Auch das ist OK.
Warum wacht er nicht auf? Es tut mir leid, ich suche schon seit 8 Stunden, ich muss fragen.
Viele Grüße, Rolf
wahrscheinlich kann ich mal wieder nicht lesen...
Ich schicke einen Tiny26 mit
Code
CPUsleep(MCUCR or %00110000);
schlafen. Funktioniert auch. Aufwachen soll er durch einen 0-Pegel an INT0.
Das funktioniert leider nicht.
Vor der CPUSleep Anweisung kommt ein
Code
DisableInts;
GIFR:= GIFR and %10111111; // Reset INT0
GIMSK:= GIMSK or %01000000; // Bit6 setzten, INT0 Enable
EnableInts;
GIFR:= GIFR and %10111111; // Reset INT0
GIMSK:= GIMSK or %01000000; // Bit6 setzten, INT0 Enable
EnableInts;
In der Interruptroutine passiert fast nichts:
Code
Interrupt INT0;
begin
GIMSK:= GIMSK and %10111111; // Bit6 löschen, INT0 disable
GIFR:= GIFR and %10111111; // reset INT0
end;
begin
GIMSK:= GIMSK and %10111111; // Bit6 löschen, INT0 disable
GIFR:= GIFR and %10111111; // reset INT0
end;
Ich habe natürlich getestet, ob die Interruptroutine angespungen wird. Dazu habe ich das Sleep rausgenommen und in der ISR INTO eine LED blinken lassen. Also, die Routine wird angesprungen, daran kann es nicht liegen. Ich habe auch geschaut, ob im Sleep-Mode ein HIGH-Pegel am INT0 Pin liegt. Und ob der Pegel auf 0 geht bei Tastendruck. Auch das ist OK.
Warum wacht er nicht auf? Es tut mir leid, ich suche schon seit 8 Stunden, ich muss fragen.
Viele Grüße, Rolf