Watchdog Problem

Gast #3554947
Lesenswert?

hello Leute habe ne kleine frage zu dem Watchdog und power down mode.
Kann mir jemand ein Beispiel eventuell schreiben wo ich den µC in den 
Power Down mode schalte und nach einer gewissen Zeit wieder erwachen 
lasse und das immer  (gewisse zeit schlafen und wieder aufwachen und 
wieder von vorn)

Hoffe ihr könntet mir dabei helfen mein Problem zu lösen.
Gast #3554998
Lesenswert?

Ups sry bissi falsch ausgedrückt also die Inititialisierung habe ich 
gemacht nur wie mache ich das dass der µC in den Power Down mode geht 
und dann mit dem Watchdog aus dem schlaf geholt wird
#3555126
Lesenswert?

Das Datenblatt sollte auskunft geben. Du musst den Watchdog richtig 
initialisieren. Die ISR mit ins Programm holen und den Controller an der 
entsprechenden Stelle schlafen legen.

Zum Beispiel so:
1
void GlobalSleepMode(void)
2
{
3
  cli();
4
  wdt_reset();
5
  WDTCSR |= (1<<WDCE)|(1<<WDE);        //WD Interrupt Enable, WD Change Enable
6
  WDTCSR = (1<<WDIE)|(1<<WDP1)|(1<<WDP0);    //16k, ca. 0,125s
7
  sei();
8
  
9
  set_sleep_mode(SLEEP_MODE_STANDBY);
10
  sleep_mode();
11
}
12

13
void GlobalWakeUp(void)
14
{  
15
  cli();
16
  WDTCSR |= (1<<WDCE)|(1<<WDE);  //WD Change Enable
17
  WDTCSR = 0x00;          //Turn WD off
18
  sei();
19
}
20

21
ISR(WDT_vect)
22
{
23
  
24
}

Das ganze ist für den Mega88. Für den Tiny musst du es wahrscheinlich 
anpassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren