Gast
#3583365
Hi Leute !!!
In meinem Programm ist durch den Timer1 eine Uhr integriert, die während
der gesamten Programmlaufzeit im Hintergrund mitläuft.
-------------------------------------
....
Config Timer1 = Timer , Prescale = 64
On Timer1 Uhrzeit
Enable Timer1
Enable Interrupts
Start Timer1
.....
Uhrzeit:
Incr Timer_counter
If Timer_counter = 2 Then
Timer_counter = 0
Incr Sekunde
If Sekunde = 60 Then
Sekunde = 0
Incr Minute
If Minute = 60 Then
Minute = 0
Incr Stunde
If Stunde = 24 Then Stunde = 0
End If
End If
End If
Return
-------------------------------------
Nun wird der ATTiny45 an einer bestimmten Programmstelle in den
IDLE-Modus vesetzt, der ausschließlich durch das Betätigen eines Tasters
an PortB.2 wieder beendet werden soll. Die Uhr soll währenddessen aber
weiterlaufen, was ja im IDLE-Modus möglich ist.
-----------------------
....
Config Int0 = Low Level
On Int0 Wakeup
Enable Int0
....
Wakeup:
return
-----------------------
Das funktioniert aber leider nicht, da der IDLE-Modus ja sofort wieder
durch den Overflow-Interrupt vom Timer1 beendet wird.
Gibt es evtl. eine Möglichkeit festzulegen, welche Interrupts den
jeweiligen Sleep-Modus, also in meinem Fall den IDLE-Modus, beenden
dürfen? Oder anders ausgedrückt, kann ich den Timer1-Overflow-Interrupt
als Trigger für das Beenden des IDLE-Modus irgendwie "verbieten"?
Grüße,
The SphereX