Forum: Compiler & IDEs SW Reset ???


von BuZ (Gast)


Lesenswert?

Hallo,

ich möchte an einer bestimmten Stelle im Code einen Reset ausführen.
Muss ich dazu einen WatchDog aufziehen oder kann ich einen Reset per
SW-Befehl durchführen? Ich verwende einen ATMega 128 mit GCC als
Entwicklungsumgebung.

Gruß BuZ

von Kai Klenovsek (Gast)


Lesenswert?

Eine richtigen Reset wo auch alle I/O Ports initialisiert werden kannst
Du nur per Watchdog herbei führen.

Ansonsten einfach im Programm selber per Funktionspointer an 0x000000
springen.

Gruss,
Kai

von Alex (Gast)


Lesenswert?

Einen I/O auf den Reset zu legen sollte doch auch klappen. Wenn das
Programm ihn auf Masse zieht wird ein Reset ausgelöst, nach dem
Anlaufen sind die Pins wieder hochohmig.

Bin mir aber nicht sicher, habe es noch nicht probiert ...

von BuZ (Gast)


Lesenswert?

Ja, doch leider ist die HW schon fertig und fädeln will ich ich auch
nicht. Ich glaube ich komme am WatchDog nicht vorbei.

Danke für die schnelle Hilfe,

Gruß BuZ

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Eine richtigen Reset wo auch alle I/O Ports initialisiert werden
> kannst Du nur per Watchdog herbei führen.

Naja, man kann auch ein Pin auf den Reset-Eingang routen. ;-)

von Bolle (Gast)


Lesenswert?

Aus welchem Grund sollte es denn nötig sein, während der Ausführung
eines Programms einen Reset durchzuführen?  Was ist das für eine
"bestimmte Stelle im Code", die Du erwähntest?

von Kai Klenovsek (Gast)


Lesenswert?

>> Eine richtigen Reset wo auch alle I/O Ports initialisiert werden
>> kannst Du nur per Watchdog herbei führen.

> Naja, man kann auch ein Pin auf den Reset-Eingang routen. ;-)

Für so banale Sachen verschwende ich keinen heiligen I/O Port :-).

von Kai Klenovsek (Gast)


Lesenswert?

>Aus welchem Grund sollte es denn nötig sein, während der Ausführung
>eines Programms einen Reset durchzuführen?  Was ist das für eine
>"bestimmte Stelle im Code", die Du erwähntest?

z.B aus einem Bootloader heraus.

von Bolle (Gast)


Lesenswert?

> z.B aus einem Bootloader heraus.

OK, daran habe ich nicht gedacht (hatte bisher mit Bootloadern noch
nichts zu tun, werde mich bei Gelegenheit aber mal darüber
informieren).

Danke für Deine Antwort.

von Rolf (Gast)


Lesenswert?

Beim MSP430 rufe ich für einen schnellen Reset die NMI-ISR direkt auf,
über ein Makro:

#   define mc_RESET (*(void(**)(void))(0xfffe))()

Den Hardware-Reset macht man über eine passende Aktion wie diese (sieh
Handbuch):

#define mc_HARDWARE_RESET { WDTCTL = 0xDEAD }

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
Noch kein Account? Hier anmelden.