Gast
#5226161
Hallo! Bin gerade dabei, mit einem ATmega168 einen Wecker zu implementieren. Der uC ist die meiste Zeit im Power-Safe-Modus und wird 60 mal pro Sekunde durch einen Timer2-Overflow-Interrupt aufgeweckt, der die verstrichene Zeit erfasst und ggf. den Weckeralarm auslöst. Zusätzlich kann der uC mit einem Taster-Interrupt (PCINT0) aufgeweckt werden. Ich verstehe nun nicht so ganz, wie das Aufwachen genau abläuft. Also was passiert, wenn der uC schlafen gegangen ist, ich irgendwann den Taster drücke und die ISR durchgelaufen ist. Springt der uC danach dorthin, wo er vorher schlafen gegangen ist (dh. an Label1 in Z.8), oder geht er nach der ISR direkt wieder schlafen? Oder läuft die main()-Schleife von vorne durch? Hier der relevante Teil des Codes:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Schöne Grüße, Johnny W