Ich würde gerne nach 10 Sekunden gedrückt halten einer Taste einen Reset durchführen. Nun wollte ich dies banal über Watchdog lösen: while(1); Funktioniert aber leider nicht. Wie kann ich ohne auf den reset Pin von außen zugreifen zumüssen oder über die Ausgänge auf den Reset Pin anzusteuern (zu Unsicher) dies lösen? Gibt es einen einfachen Reset Befehl?
Rene Müller schrieb: > Ich würde gerne nach 10 Sekunden gedrückt halten einer Taste einen Reset > durchführen. > Nun wollte ich dies banal über Watchdog lösen: while(1); > Funktioniert aber leider nicht. Die Frage ist eigentlich: warum? Denn: Wenn ein µC tatsächlich hängt, dann hängt er und dann kannst du ihn auch nicht per Programm in einen Reset treiben (ausser mit dem Watchdog, in dem das Programm den nicht mehr zurückpfeift). Aber im Regelfall hängt ein µC nicht. Und wenn doch, dann muss man diesem Problem auf den Grund gehen und den Fehler im Programm suchen bzw. die Hardware verbessern. Wenn es nur darum geht, dass ein Programm sich neu initialisieren soll, dann programmiert man genau das: Dass der Initialisierungsteil des Programms erneut abgespult wird. Das ist dann aber ein ganz normaler Teil des Programms und hat mit einem Reset eigentlich nicht wirklich was zu tun. > Gibt es einen einfachen Reset Befehl? Nein. Du kannst maximal einen Sprung an die Adresse 0 machen. Aber auch das entspricht nicht dem, was bei einem Reset alles abläuft. Denn der ganze Reset-Teil, den die Hardware autonom erledigt, wird dabei nicht durchgeführt. > Wie kann ich ohne auf den reset Pin von außen zugreifen > zumüssen oder über die Ausgänge auf den Reset Pin anzusteuern > (zu Unsicher) dies lösen? Indem du so sauber programmierst bzw. die Hardware so sauber aufbaust, dass sich die Fragestellung des 'wie resette ich absichtlich einen µc' gar nicht stellt, weil die Funktion überhaupt nicht gebraucht wird.
Rene Müller schrieb: > Nun wollte ich dies banal über Watchdog lösen: while(1); > Funktioniert aber leider nicht. Je nun, der uralte Mega16 hat leider keinen Watchdog-Reset. Da bleibt dann doch nur noch ein Zugriff auf den Reset-Pin, oder eine Unterbrechung von VCC. Oder du nimmst einen moderneren pinkompatiblen AtMega mit Watchdog-Reset. Oliver
Beim RL78 gibt es ein Invalid Opcode 0xFF. Wenn man den ausführt, macht der µC ein Reset. Keine Ahnung ob der Atmel sowas hat.
Oliver S. schrieb: > Je nun, der uralte Mega16 hat leider keinen Watchdog-Reset. Ähm der Mega16 hat sehr wohl einen Watchdog-Reset Siehe Seite 42 Im Datenblatt. Vorraussetzung dafür ist natürlich das der Auch an ist.
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.