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();} }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.