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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.