interner reset??

Gast #536249
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
#536254
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

#536262
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...

...
Gast #536265
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?

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