Hi!
Ich programmiere für meine Diplomarbeit einen LPC2138, was auch bislang
recht gut funktionierte.
Jetzt wollte ich jedoch eine Funktion einbauen, die den Microcontroller
über die USB-Schnittstelle zurücksetzt.
Dazu mache ich den WD scharf und lass mein Programm in eine
Endlosschleife laufen:
1 | [...]
|
2 | Intern_wdtc = _PCLK/4*3; // 3s timeout (pclk/4 =1s)
|
3 | Intern_wdmod = 3; // watchdog reset ein
|
4 | Intern_wdfeed = 0xaa; // start
|
5 | Intern_wdfeed = 0x55; // watchdog
|
6 | while (1); //endlosschleife, um WD auszuloesen
|
Allerdings gibt es danach immer ein Problem: Wenn der WD einmal
zugeschlagen und einen RESET ausgeführt hat, ist es mir nicht mehr
möglich den Microcontroller über mein JTAG zu flashen oder
zurückzusetzen, ich muss zuerst immer einmal die Stromzufuhr
unterbrechen, um über mein JTAG wieder Zugriff auf den Controller zu
bekommen.
Meine Frage lautet nun: Kann ich dieses Problem irgendwie beheben
(vielleicht muss ich noch irgendein Register setzen oder abfragen, bevor
ich in die Endlosschleife gehe?)? Oder gibt es hierfür keine Lösung?
Wäre schön, wenn mir jemand helfen könnte, oder wenn sich zumindest
jemand meldet, der das gleiche Problem hat (dann wüsste ich wenigstens,
dass ich nicht alleine bin)!
Mit Dank und freundlichem Gruß
Hein vonne Werft