Gast
#3155432
Hallo, ich hab folgendes Problem mit einem uC Atmel AT89C51. Zur Vorgeschichte: In der Software (Keil) gibt es eine Funktion die einen Zähler TOut auf 0 überprüft und dann einen Fehler ausgibt. if(!TOut) { bPosFehler=1; } Während dem normalen Programmablauf wird der Zahler immer wieder auf 10000 gesetzt und mit dem Timer ISR dekrementiert Wie sich bei der Softwar Analyse gezeigt hat wurde jedoch durch einen Programm Fehler die Bedingung falsch gesetzt, so dass TOut nie 0 werden kann. Leider und dass ist nun der Fehler tritt der Zustand scheinbar trotzdem während es normales Betriebs sporadisch auf und der Fehler bPosFehler wird gemeldet. Mein Ansatz ist nun der dass ich Annehme das der uC während des Betriebs zb. durch eine (EMC, Spikes) Störung „abstürzt“ oder zumindest Variablen den Wert 0 annehmen und so trotz dass die Bedingung nicht erfüllt wurde der Fehler ausgelöst wird da zb. TOut null ist. Lt Handbuch von Atmel gibt es im uC einen Power Monitor der im Falle wenn die Spg. einbricht einen Reset auslöst. Ist ein solches Ereignis denkbar und wie könnte ich dem auf die Schliche kommen. Ein normaler Programmstart nach einem WD Reset scheidet eigentlich aus da dann alle Variablen zuerst initialisiert werden. Gruss Patrick