www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Attiny13 Watchdog resettet nicht


Autor: Julius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin neu hier und bitte um eure Hilfe.
Mein Programm soll den PinB4 überwachen und gegebenfalls portb3 high 
setzen. Dieser soll dann durch einen Timer eine Weile gehalten werden. 
Das funktioniert auch ganz gut.
Sicherheitshalber wollte ich einen Watchdog mit im Programm haben. Da 
der Kontroller die ganze Zeit am Netz bleiben soll und ich nicht will 
das er sich irgendwann aufhängt.
Ich denke ich habe den Watchdog korrekt gestartet. Und ich bin mir auch 
ziemlich sicher das er einfach nicht resttet wird. Dadurch wird dann 
irgendwann der Attiny13 resettet, obwohl das Programm noch im vollem 
gange war.
Kann mir jemand meinen Fehler zeigen?
Ich benutze übrigens das AVR Studio 4.18.700 und den Atmel AVR ISP MKII

Hier der Quellcode:

  .include "tn13def.inc"

  .def  A  =r16
  .def  B  =r17

  rjmp Anfang

    .org 0x0003  ;Timer0 Overflow landet hier und
    rjmp TIM0_OVF  ;verweist auf TIM0_OVF Routine

Anfang:
    sbi    portb,4  ;schaltet PullUp für sensor eingang ein Port B4
    sbi    ddrb,3  ;Datenrichtungsbit PB3, Ausgang Pumpen Mosfet
    cbi    portb,3
    cli    ;Watchdog aktivieren (max. Zeit)
        ldi   r18,0b00011000  ; 1.mal
        out   wdtcr,r18
        ldi   r18,0b00101001  ; 2.mal
        out   wdtcr,r18
    sei
    WDR    ;Watchdog reset

Schleife:
    WDR
    sbis  pinb,4
    rjmp  Pumpe_an
    rjmp   Schleife


Pumpe_an:
    WDR
    cli
    sbi    portb,3  ;schaltet PB3 ein
    ldi    A,5  ;Start mit Vorteiler / 1024
    out    TCCR0B,A
    ldi    A,2
    out    TIMSK0,A;Timer Interrupt freigeben
    ldi    B,250  ;definiert Nachlaufzeit der Pumpe
    sei      ;Globaler Interrupt freigeben
    rjmp  Schleife

TIM0_OVF:        ;Timer Interrupt
    WDR
    dec   B
    cpi  B,0
    breq   Pumpe_aus
    reti


Pumpe_aus:
    WDR
    cbi    portb,3  ;schaltet PB3 aus
    ldi    A,0  ;schaltet Timer aus
    out    TCCR0B,A
    reti

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du den AVRISP MKII benutzt, nehme ich an, dass du das nicht via dW 
festgestellt hast. Ergo hat su sicher einen Simulator angeworfen und das 
hättest du erwähnen sollen. Aber sei es drum.

Der AVRSimulator scheint den WD nicht richtig zu simulieren (sollte 
eigentlich), aber der AVRSimulator2 vermag das zu erledigen.

Gruß
Skriptkiddy

Autor: Julius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und danke für die Antwort!
Stimmt ich habe es im Studio4 AVRSimulator geprüft und dabei 
festgestellt das es der Watchdogreset ist der mich aus dem Programm 
wirft. Allerdings bin ich erst darauf aufmerksam geworden nachdem der 
Attiny auch nicht machte was er sollte. Ort scheint es also auch nicht 
zu funktionieren.

Ich entnehme deiner ANtwort das am Quellcode an sich nichts einzuwenden 
ist, stimmt das?
Da es ja baer trotzdem nicht funktioniert gibt es noch ideen was ich 
probieren könnte?

Grüße
Julius

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.