Forum: Mikrocontroller und Digitale Elektronik Neustart AVR


von Bernd (Gast)


Lesenswert?

Hallo,

kann ich mit irgendeinem Befehl den AVR Neustarten, falls ein bestimmtes 
Ereignis eintritt?

Gruß

von sdfsd (Gast)


Lesenswert?

musst du mal guggen ob du den watchdog dazu überreden kannst

von Falk (Gast)


Lesenswert?

@Bernd

>kann ich mit irgendeinem Befehl den AVR Neustarten, falls ein bestimmtes
>Ereignis eintritt?

rjmp 0

oder

jmp 0

Je nach Typ. Das ist aber KEIN vollständiger Reset!

MFG
Falk



von Bernd (Gast)


Lesenswert?

Bräuchte schon einen vollständigen Reset.

Hab im GCC Tutorial das hier gelesen:

>>Außerdem bietet der WD die einzige Möglichkeit einen beabsichtigten 
>>System-Reset auszulösen.....

Doch wie?

von Snake (Gast)


Lesenswert?

einfach den watchdog aktivieren und dann in eine endlosschleife 
verfallen (natürlich ohne den watchdog zurückzusetzen!)

von Bernd (Gast)


Lesenswert?

>einfach den watchdog aktivieren und dann in eine endlosschleife
>verfallen (natürlich ohne den watchdog zurückzusetzen!)

Klappt ganz gut, nur es dauert ca. 10 Sekunden bis der AVR neu startet. 
Obwohl ich das hier eingestellt habe:

wdt_enable(WDTO_2S);

von Falk (Gast)


Lesenswert?

@Bernd

>Klappt ganz gut, nur es dauert ca. 10 Sekunden bis der AVR neu startet.

Mal ins Datenblatt geschaut? AFAIk sind die Timeoutwerte nicht bei allen 
Controlelrn identisch. Ausserdem ist bei niedriger Betriebsspannung die 
Zeit wesentlich grösser.

MFG
Falk

von Marvin (Gast)


Lesenswert?

Einen Portpin an den Reset-Eingang legen. Evtl. noch mit einem R und 
einem C den Impuls am Reset-Pin verlängern. Legt man nun den Portpin auf 
low, hat man einen sauberen Hardware-Reset.

von Frank N. (betafrank)


Lesenswert?

Wenn Du (in Deinem Fall) mit ~75ms leben kannst:
1
#include <avr/wdt.h>
2
#include <avr/interrupt.h>
3
void restart(void){
4
   cli();   //optional
5
   wdt_enable(WDTO_15MS);
6
   while(1);
7
}

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.