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
@ 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
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.
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... ...
>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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.