Forum: Mikrocontroller und Digitale Elektronik interner reset??


von KP (Gast)


Lesenswert?

hallo zusammen,

meiner einer würde gerne bei einem atmega 162 einen internen reset 
durchführen. leider habe ich bei den tutorials immer nur gelesen, wie 
das mit dem watchdog funktioniert.

gibt es da nicht deinen befehl, bzw. befehlskette, um einen internen 
reset des uC auszulösen? das programm, das ich schreibe, ist in C 
programmiert.

vielleicht habt ihr ja einen tipp für mich.

merci und noch einen schönen tag!

grüße KP

von Falk B. (falk)


Lesenswert?

@ KP

>meiner einer würde gerne bei einem atmega 162 einen internen reset
>durchführen. leider habe ich bei den tutorials immer nur gelesen, wie
>das mit dem watchdog funktioniert.

Ja und? Was ist daran nicht gut? Es gibt keine weitere Möglichkleit 
einen Software-Reset auszuführen. (Ok, man könnte ein IO Pin opfern und 
damit den Reset-Pin des uC schalten).

MFG
Falk


von Frank (Gast)


Lesenswert?

hüpf doch einfach auf den Reset-Vektor.

bye

Frank

von D. W. (dave) Benutzerseite


Lesenswert?

Was soll dein Reset machen? Die Hardware in den Ursprungszustand 
versetzen oder nur die Software von vorne abspielen? Letzteres geht 
durch einen Sprung zu 0. Für das andre brauchst du den WDT oder einen 
Reset-Pin-Wackel.

von Hannes L. (hannes)


Lesenswert?

KP wrote:
> hallo zusammen,
>
> meiner einer würde gerne bei einem atmega 162 einen internen reset
> durchführen. leider habe ich bei den tutorials immer nur gelesen, wie
> das mit dem watchdog funktioniert.

Gute Lösung, warum nutzt Du sie nicht?

>
> gibt es da nicht deinen befehl, bzw. befehlskette, um einen internen
> reset des uC auszulösen? das programm, das ich schreibe, ist in C
> programmiert.

Alle Befehle, die Dein AVR versteht, sind im Datasheet aufgelistet. Ein 
Reset-Befehl ist mir nicht bekannt.

Einen Hardware-Reset kann man nur per Hardware auslösen. Eine gute 
Möglichkeit, aus dem Programm ein Reset auszulösen, ist die, den 
Watchdog dazu zu bringen, dass er anspricht und den Reset auslöst. Du 
kannst auch einen Pin mit dem Reset-Pin verbinden und diesen auf L 
setzen, wenn Reset ausgelöst werden soll, aber das ist eigentlich Unfug 
und Verschwendung.

>
> vielleicht habt ihr ja einen tipp für mich.
>
> merci und noch einen schönen tag!
>
> grüße KP

Frohen Rest vom Osterfest...

...

von AVRFan (Gast)


Lesenswert?

>meiner einer würde gerne bei einem atmega 162 einen internen reset
>durchführen. leider habe ich bei den tutorials immer nur gelesen, wie
>das mit dem watchdog funktioniert.

Ja. Und? Gefällt Dir an der Watchdoglösung was nicht?

>gibt es da nicht deinen befehl, bzw. befehlskette, um einen internen
>reset des uC auszulösen? das programm, das ich schreibe, ist in C
>programmiert.

Ja, es gibt eine "Befehlskette".  Sie sperrt zunächst alle Interrupts, 
schaltet den Watchdog ein und geht danach in eine Endlosschleife.  Das 
ist in Assembler mit vier Instruktionen erledigt:
1
Reset:
2
    cli    
3
4
    ldi  r16, 1<<WDE 
5
    out  WDTCR, r16
6
    
7
Endless: 
8
    rjmp Endless

Hilft Dir das weiter?

von KP (Gast)


Lesenswert?

hallo,

das ging ja mal wieder fix!

vielen dank für eure hilfe. habt mir echt geholfen.

auch noch einen schönen feiertag.

grüße KP

von Marco S. (masterof)


Lesenswert?

Frank wrote:
> hüpf doch einfach auf den Reset-Vektor.

Das ist kein Reset.

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.