Forum: Mikrocontroller und Digitale Elektronik [ATMega128] Softwareseitiger Reset


von Sam (Gast)


Lesenswert?

Hi zusammen,

ich möchte gerne wissen ob es möglich ist einen softwareseitigen Reset 
zu machen.

Das Problem ist Folgendes. Wir haben einen Roboter gebaut, welcher auf 
RC5-Fernbedienungsknopfdruck einen Reset machen soll. Dies ist dafür 
gedacht, um direkt aus Funktionen und deren Schleifen auszusteigen ohne 
auf die Abbruchbedingung zu warten.

Deshalb möchten wir eine Art "Reset-Interrupt" durchführen

Ist dies möglich und wenn ja, wie?

Liebe Grüße,
Sam

von Oliver J. (skriptkiddy)


Lesenswert?

Watchdog an machen und dann in einer Endlosschleife auf den Reset 
warten.

Gruß Oliver

von Sam (Gast)


Lesenswert?

Wie genau wird der Watchdog verwendet? Wir haben schon Codebeispiele aus 
dem Internet verwendet, jedoch werden immer Headerdateien verwendet, 
welche uns nicht zur Verfügung stehen.

Gruß Sam

von holger (Gast)


Lesenswert?

>Deshalb möchten wir eine Art "Reset-Interrupt" durchführen
>
>Ist dies möglich und wenn ja, wie?

Nimm einen uC Pin und häng den an die Reset Leitung.
Wenn dein RC5 Sigal erkannt wurde zieh den Pin auf 0;)

von Oliver J. (skriptkiddy)


Lesenswert?

Sam schrieb:
> Wie genau wird der Watchdog verwendet?

Steht hier:
AVR-GCC-Tutorial/Der Watchdog

und auch im Datenblatt

von H.Joachim S. (crazyhorse)


Lesenswert?

Wenn der gesamte Chip initialisiert wird (also nicht stillschweigend die 
Reset-Werte benutzt werden, kann man auch folgendes machen:

#asm ("rjmp 0")

Ich würde aber auch die Watchdog-Variante nehmen.

von Sam (Gast)


Lesenswert?

holger schrieb:
> Nimm einen uC Pin und häng den an die Reset Leitung.
> Wenn dein RC5 Sigal erkannt wurde zieh den Pin auf 0;)

Vielen Dank, hat nicht ganz funktioniert, weil wir bei der 
Initialisierung ein Dauerreset hervorgerufen haben.

H.joachim Seifert schrieb:
> Wenn der gesamte Chip initialisiert wird (also nicht stillschweigend die
> Reset-Werte benutzt werden, kann man auch folgendes machen:
>
> #asm ("rjmp 0")

Das ist ja leicht. Vielen Dank, hat großartig funktioniert und genau wie 
wir uns das vorgestellt haben!

von holger (Gast)


Lesenswert?

>> Nimm einen uC Pin und häng den an die Reset Leitung.
>> Wenn dein RC5 Sigal erkannt wurde zieh den Pin auf 0;)

>Vielen Dank, hat nicht ganz funktioniert, weil wir bei der
>Initialisierung ein Dauerreset hervorgerufen haben.

Bevor du den auf Ausgang schaltest musst du das Port Register
auf 1 schalten;)

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.