Gast
#546165
Hallo,
ich hab ein Problem beim Sleep_Mode beim Atmega88. So wie ich ihn im
Moment programmiert habe, funktioniert er zwar einwandfrei, jedoch nicht
wie gewünscht. Zur Zeit geht der Controller direkt nach dem Einschalten
in den Sleep-Mode. Durch einen Low_Level Interrupt wird er daraus wieder
aufgeweckt. Das Ein- und Ausschalten funktioniert über einen externen
Taster also ohne Probleme.
Nun möchte ich den Controller aber erst Schalfen schicken, wenn der
Taster ca. 5 Sekunden lang gedrückt wurde. Jedoch weiß ich nicht so
richtig, wie ich das anstellen soll. Kann mir da jemand nen guten Tip
geben? Hier mal die Routine zum Sleep_Mode...
int main(void)
{
start:
init_avr();
init_varis();
sleep_mode_init();
_SEI;
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode(); //in sleepmodus gehen
while(!(PIND & (1 << PIND3)))
{
;
}
Port_Init();
wakeup = 0;
while(1)
{
if((!(PIND & (1 << PIND3))) && wakeup == 0)
{
while(!(PIND & (1 << PIND3)))
{
;
}
wakeup = 1;
goto start;
}
}