Forum: Compiler & IDEs AVR-Sleep im Timer


von Anton (Gast)


Lesenswert?

Hallo,

kann ich ein den Sleep Befehl im Timer machen?
Das Problem ist das der AVR in der main ganze Zeit in einer while hängt.

Geht das?


Danke

von Uwe N. (ulegan)


Lesenswert?

mache einen sleep, in dem ein Timer weiterläuft und lasse den einen 
Interrupt auslösen, der den Prozessor aufweckt.
Also Timer mit Interrupt enable in main() starten und dann sleep. Der 
Interrupt wird ausgelöst, die ISR aufgerufen (die muss nichts tun) und 
danach macht der Prozessor hinter dem sleep weiter.

von Anton (Gast)


Lesenswert?

In den Sleep Modus zu kommen ist ja kein problem ... aber wenn er 
aufgemacht ist und in der while schleife hängt wie kommt er wieder ins 
Sleep zurück??
1
int main(void)
2
{
3
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
4
        sleep_mode();                   // in den Schlafmodus wechseln
5
6
      while(1);
7
8
}


wie kommt er jetzt in sleep wieder? GAR nicht. Deshalb die Frage ob man 
irgendwie im Timer den Sleep starten kann?

von Εrnst B. (ernst)


Lesenswert?

Machs halt so:
1
int main(void)
2
{
3
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
4
  while(1) sleep_mode(); // immer wieder in den Schlafmodus wechseln
5
}

von Falk B. (falk)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.