Atmega16 Software Reset

(Firma: RWTH Aachen) #3873831
Lesenswert?

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?
#3873844
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren