Forum: Mikrocontroller und Digitale Elektronik ATMega88 neu starten


von T. Hofmann (Gast)


Lesenswert?

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?

von loller (Gast)


Lesenswert?

Du willst also einen Hardreset im Programm erzwingen.
Dann nimm den Watchdog.

von g457 (Gast)


Lesenswert?

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

von T. Hofmann (Gast)


Lesenswert?

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.

von Tilmann (Gast)


Lesenswert?

Einen Port-Pin an den Reset-Pin legen und via Software auslösen?

von g457 (Gast)


Lesenswert?

> 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!

von Max D. (max_d)


Lesenswert?

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 )

von T. Hofmann (Gast)


Lesenswert?

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.

von MWS (Gast)


Lesenswert?

Der Schlüsselbegriff lautet "timed sequence".

von g457 (Gast)


Lesenswert?

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

von T. Hofmann (Gast)


Lesenswert?

Würde ich C benutzen hätte ich nicht eingangs geschrieben
rjmp 0x000

von g457 (Gast)


Lesenswert?

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

von T. Hofmann (Gast)


Lesenswert?

Was meinst Du woher ich die von mir geposteten Infos habe.
Aber danke für Deine freundlich Art.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hatter aber Recht, die Assemblerbeispiele für den Wachhund stehen im 
Datenblatt und sie funktionieren auch. Nicht ´rummaulen!

von T. Hofmann (Gast)


Lesenswert?

Wer mault rum?

So wie ich das sehe bin ich wohl Blind. Könntet mir einer mal sagen auf 
welcher Seite?

von Spess53 (Gast)


Lesenswert?

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

von Tilmann (Gast)


Lesenswert?

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?

von marixstorm (Gast)


Lesenswert?

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?

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.