Gast
#3047562
Hallo Forengemeide, mir ist klar das wenn ich einen rjmp 0x000 ausführe das mein Programm neu startet. Doch gibt es auch die Möglichkeit den ATMega88 so zu starten als wäre ein Reset ausgeführt worden?
|
Anzeige
|
ATMega88 neu starten
Gast
#3047562
Hallo Forengemeide, mir ist klar das wenn ich einen rjmp 0x000 ausführe das mein Programm neu startet. Doch gibt es auch die Möglichkeit den ATMega88 so zu starten als wäre ein Reset ausgeführt worden?
Gast
#3047575
Du willst also einen Hardreset im Programm erzwingen. Dann nimm den Watchdog.
Gast
#3047576
> mir ist klar das wenn ich einen rjmp 0x000 ausführe das mein Programm > neu startet. Mehr oder weniger. Mehr weniger als mehr mehr. > Doch gibt es auch die Möglichkeit den ATMega88 so zu starten als wäre > ein Reset ausgeführt worden? Watchdog-Reset sollte im Regelfall reichen (das ist kein 'Reset' im Sinne von 'externer Reset', das Ergebnis ist aber das selbe). Rest steht im Datenplatt.
Gast
#3047582
So nehme ich mal an das ich damit recht gut fahren werde. • Bit 3 – WDRF: Watchdog system reset flag This bit is set if a watchdog system reset occurs. The bit is reset by a power-on reset, or by writing a logic zero to the flag.
Gast
#3047583
Einen Port-Pin an den Reset-Pin legen und via Software auslösen?
Gast
#3047590
> Einen Port-Pin an den Reset-Pin legen und via Software auslösen? Langt nicht. Der Reset-Pin muss für eine definierte (Mindest-)Zeit low sein um einem zuverlässigen Reset zu gewährleisten - währendessen geht der Ausgangs-Pin schon auf High-Z. Watchdog ist das Mittel der Wahl. > So nehme ich mal an das ich damit recht gut fahren werde. > Bit 3 – WDRF: Watchdog system reset flag Weiterlesen! g457 schrieb: >> Einen Port-Pin an den Reset-Pin legen und via Software auslösen? > > Langt nicht. Der Reset-Pin muss für eine definierte (Mindest-)Zeit low > sein um einem zuverlässigen Reset zu gewährleisten - währendessen geht > der Ausgangs-Pin schon auf High-Z. > > Watchdog ist das Mittel der Wahl. > >> So nehme ich mal an das ich damit recht gut fahren werde. >> Bit 3 – WDRF: Watchdog system reset flag > > Weiterlesen! das währe mit ein paar µF in den Griff zu kriegen (sinnvoll ist die methode trotzdem nicht) der Watchdog ist das einfachste und billigste was man nehmen kann (wird von lufa z.b. auch zum bootloadersprung benutzt )
Gast
#3047810
ICh komme nun aber nach echt langem lesen noch nicht ganz dahinter wie das geht. WDTON =1 WDE=1 WDIE=0 Sollte doch richtig sein.
Gast
#3047815
Der Schlüsselbegriff lautet "timed sequence".
Gast
#3047867
> Sollte doch richtig sein.
Nope. Datenplatt Kapitel '10.8 Watchdog timer' lesen. Danach dann die
fertigen Routinen aus <avr/wdt.h> aus der avr-libc nehmen.
Gast
#3047925
Würde ich C benutzen hätte ich nicht eingangs geschrieben rjmp 0x000
Gast
#3047933
> Würde ich C benutzen hätte ich nicht eingangs geschrieben > rjmp 0x000 Das geht erstens auch in C (inline-Assembler regelt), zweitens sind die hier relevanten Teile in der avr-Libs sowieso in Assembler geschrieben und drittens schau endlich ins Datenplatt, da steht fertig nutzbarer Beispielcode drin.
Gast
#3047949
Was meinst Du woher ich die von mir geposteten Infos habe. Aber danke für Deine freundlich Art. Hatter aber Recht, die Assemblerbeispiele für den Wachhund stehen im Datenblatt und sie funktionieren auch. Nicht ´rummaulen!
Gast
#3048104
Wer mault rum? So wie ich das sehe bin ich wohl Blind. Könntet mir einer mal sagen auf welcher Seite?
Gast
#3048305
Hi >So wie ich das sehe bin ich wohl Blind. Könntet mir einer mal sagen auf >welcher Seite? Es gibt ein Kapitel 'System Control and Reset'->'Watchdog Timer'. In meinen Datenblättern so um die S.50. Und am Ende davon sind Assembler- und C-Beispiele zum aktivieren des WD und zum ändern des Time-Outs. Nur interessehalber: Wozu soll das Ganze gut sein? MfG Spess
Gast
#3048312
Ich habe in meiner 40-jährigen Berufszeit noch nie eine Applikation gehabt, wo es nötig gewesen wäre, einen Hard-Reset zu generieren. Also: wozu braucht man das?
Gast
#3048544
Tilmann schrieb: > Ich habe in meiner 40-jährigen Berufszeit noch nie eine Applikation > gehabt, wo es nötig gewesen wäre, einen Hard-Reset zu generieren. Also: > wozu braucht man das? Um z.B. wieder in den Bootloader zurück zu springen? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|