ATMega64: Reset mit Watchdog tut nicht?

OP #435636
Lesenswert?

Hi,

ich möchte gerne meinen mega64 resetten vom Programm aus (verwende 
CodeVision), aber es scheint nicht zu tun. Habe eine Funktion 
geschrieben, die ja identisch mit dem von CV ausgespuckten Init des WDT 
ist. Aber der Reset kommt nicht.

void reset() {
  WDTCR = 0x18;
  WDTCR = 0x08;
}

Hatte den WDT im CodeGenerator zu Beginn ausgeschaltet. Habe auch 
probiert, direkt mit Assembler zu arbeiten; ebenfalls ohne Erfolg.

void reset2() {
  //saving regs is not required, device is restarting!
  #asm("LDI  R31,0x18");
  #asm("OUT  WDTCR,R31");
  #asm("LDI  R31,0x08");
  #asm("OUT  WDTCR,R31");
}

Was hab ich denn vergessen?
Danke, Christoph
Gast #435637
Lesenswert?

Verwendest du vielleicht die Delay Funktion?
Da wird glaube ich nämlich der Watchdog Timer unter anderem damit 
zurückgesetzt...
Gibt es auch keinen Reset wenn du in eine Endlosschleife springst wo 
nichts anderes drinsteht?

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