Forum: Mikrocontroller und Digitale Elektronik Watchdog Problem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael (Gast)


Lesenswert?

Hallo, ich versuche den Watchdog
bei einem Mega8 zu nutzen.
Eigentlich sollte der Reset erst nach ca. 2s kommen.
Er kommt aber bereits nach ca. 0.2s

Hier mal mein Code zum Start des Watchdog:

watchdog_on:
    ldi mpr, 0b00001111; watchdog einschalten
    out WDTCR, mpr
    wdr
    ret

Mir fällt dazu nichts mehr ein.

Whats wrong ?

von Henning (Gast)


Lesenswert?

das ganze soll ja mit der betriebsspannung veränderlich sein... da
schonmal gesucht? kann man bei den Megas den internen oscilator nich
auch justieren? vieleicht die richting...

von Michael (Gast)


Lesenswert?

Hab ich auch schon dran gedacht. Die Spannung stimmt.
Ich benutze den internen RC osci. Der läuft recht exakt auf 1 MHz.
Laut der Datenblätter hat der Watchdog aber einen eigenen Timer.
Wie ich den kalibrieren kann, hab ich bisher leider nicht herausfinden
können.
Trotzdem vielen Dank

von OliverK (Gast)


Lesenswert?

Versuch mal

watchdog_on:
    wdr
    ldi mpr, 0b00001111; watchdog einschalten
    out WDTCR, mpr
    ret

von Wolfgang (Gast)


Lesenswert?

Hi Michael

Ich Programmiere den ATmega128 und bei diesem muss das WDTCR zweimal
innerhalb von 4 Taktzyklen gesetzt werden, damit der Wert übernommen
wird.

von Wolfgang (Gast)


Lesenswert?

Beispiel:
  WDTCR |= 0x1F;
  WDTCR |= 0x0F;  //scale Faktor => 2s Tabelle siehe Seite 54

von Joerg Wunsch (Gast)


Lesenswert?

Ach was...  Das mußt Du nur tun, wenn Du den Watchdog abschalten
willst.  Einschalten darf man ihn immer, auch beim ATmega128.

von Michael (Gast)


Lesenswert?

@ OliverK : klappt leider nicht

@ Wolfgang : Vielen Dank, so gehts, weiss der Teufel warum

Gruß Michael

von Bernhard (Gast)


Lesenswert?

habe gerade das gleiche Problem mit dem ATmeg8

von AxelR. (Gast)


Lesenswert?

Problemlösung fürn Mega8:
(mal ausnahmsweise reinkopiert und nicht als anhang)
'FASTAVR
$Device= mega8      ' used device
$Stack = 32        ' stack depth
$Clock = 3.6864      ' adjust for used crystal
$WatchDog=2048
Start WatchDog
Do            ' place your code in next line

Loop

Ende BASIC-CODE
***************

++++++++
ASM-FILE-AUSGABE (reinkopiert)
++++++++
;FastAVR Basic Compiler, ver.4.0.1, by MicroDesign
;Created 21:29:44, 20-02-2005
;
.include  "E:\FASTAVR_4\inc\m8def.inc"
;
    .DSEG

    .CSEG
.ORG  0

_Reset:
    ldi    yl,Low(RAMEND)
    out    SPL,yl
    ldi    yh,high(RAMEND)
    out    SPL+1,yh
    sbiw  yl,32


    ldi    zl,0x1f
    out    WDTCR,zl
    ldi    zl,0x17
    out    WDTCR,zl

;******  USERS BASIC CODE **********************

;-Line--0009----Start WatchDog--
    in    zl,WDTCR
    sbr    zl,0x18
    out    WDTCR,zl

;-Line--0010----Do            ' place your code in next line--
L0000:

;-Line--0012----Loop--
    rjmp  L0000
L0001:

;****** End OF USER BASIC CODE ****************


;System Global Variables: 0  bytes
;User   Global Variables: 0  bytes

Hiermit geht's jedenfalls, vielleicht kann man den ASM-Teil
"klauen"..
AxelR.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.