ATmega16 - Watchdog

Gast #699974
Lesenswert?

Hallo Forum,

ich bin an der Inbetriebnahme eine SW für den ATmega16 und habe ein 
Problem mit dem Watchdog. Ich habe nun eine Teastapplikation erstellt 
(s.u.) und festgestellt, dass der Watchdog immer dann zuschlägt wenn ich 
einen Port-Zugriff mache. (Egal ob in C oder per inline Assembler,wie 
hier) Sobald ich den Port beschreibe (hier DDRB.2) schlägt der Watchdog 
zyklisch zu, kommentiere ich die Zeile aus, dann funktioniert der Test 
einwandfrei.
Merkwürdig ist dass das CPU Status Register aber nicht der Watchdog 
Reset anzeigt. Die CPU spring auf den Reset Vektor. Wenn ich den 
Watchdog nicht aktiviere, dann gehen alle Port-Zugriffe problemlos.
Angeschlossen ist nichts an PortB, der Simulator im AVRStudio ziegt das 
gleiche Verhalten, keine Abhängigkeit der Pins an PortB, andere Ports 
habe ich nicht getestet.

Hat der ATmega16 irgendein Problem an der Stelle ?
Bin etwas ratlos über diese Konstellation.

void main (void)
{

MCUCR = 0x40;
WDTCR = 0x0A;

__asm__("sbi 0x17,0x02");

for(;;){_NOP();_NOP();_WDR();}

}

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