Fehlersuche mit Watchdog Timer

In dieses Forum gehören all deine Fragen rund um die Elektrotechnik und im Speziellen zum Bereich der Mikrocontrollertechnik.

Fehlersuche mit Watchdog Timer

#1

Ungelesener Beitrag pic18 » 5. Jan 2019, 13:48

Ich habe noch nie den Watchdog programmiert. Da ich in einen Programm mit Pic 18F4685 öfters Abstürze und Zeitüberläufe habe, habe ich mir überlegt den Watchdog zu programmieren. Ich muß gewisse Routinen in Main alle 100ms ausführen. Um zu sehen wo das Programm hängt möchte ich den Postceller auf ca. 120ms stellen. Wie ich im Datenblatt gelesen habe gibt es scheinbar keine Möglichkeit vor den Watchdog Reset die Register auszulesen.
Nach den WTD-Reset ist aber das Register RCONbits.TO gelöscht. Nun habe ich mir überlegt, um zu sehen wo die Zeitüberschreitung war, den STKPTR auszulesen und zu sichern. Ich habe auch einen Link gefunden: https://www.microchip.com/forums/m224445.aspx
Was mir nicht ganz klar ist, der STKPTR wird bei einen Reset auf Null gestellt. Wie kann ich erkennen wo dieser bei Absturz, bzw Zeitüberschreitung stand? Also wo die Zeit überschritten wurde?

Re: Fehlersuche mit Watchdog Timer

#2

Ungelesener Beitrag vloki » 7. Jan 2019, 11:59

Wenn du den Stackpointer auslesen kannst, dann könntest du doch anstelle des WDT einfach einen beliebigen Timer nehmen und den als deinen eigenen WD benutzen. So könntest du einen einfachen Interrupt auslösen lassen und keinem Reset.

Re: Fehlersuche mit Watchdog Timer

#3

Ungelesener Beitrag pic18 » 7. Jan 2019, 21:09

Danke, habe ich mir auch schon überlegt. Nur möchte ich unabhängig von Systemtakt bleiben da manchmal beim Start der Interrupt nicht initialisiert wird, durch die angeschlossene Hardware. Außerdem muß ich öfters den Interrupt abschalten da ich verschiedene Datenbusse abfrage wo die Zeit stimmen muß.
Ich habe das Datenblatt ständig studiert und bin nicht schlau geworden welche Register bei einem WD-Reset erhalten bleiben. Bei Gelegenheit werde ich ein kleines Testprogramm schreiben um zu sehen was passiert. Früher hatte ich bei anderen Prozessoren verschiedene Reset-Zeiger, die man verbiegen konnte. Das gibt es bei den 18er Pic's nicht.

Antworten