Watchdog Problem

Gast #53945
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 ?
Gast #53946
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...
Gast #53947
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
Gast #53949
Hi Michael

Ich Programmiere den ATmega128 und bei diesem muss das WDTCR zweimal
innerhalb von 4 Taktzyklen gesetzt werden, damit der Wert übernommen
wird.
Gast #53954
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.