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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.