Forum: Mikrocontroller und Digitale Elektronik ATMega64: Reset mit Watchdog tut nicht?


von Christoph S. (mcseven)


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

von Peter Z. (Gast)


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?

von Christoph S. (mcseven)


Lesenswert?

aaaaahhhh... das wars gewesen :) Muß man mal drauf kommen, dass da noch 
ein wdr versteckt ist drinnen. Dankeschön...

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.