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.