AT90S2313 - Watchdog Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
|
|
|
BID = 375163
olfi13 Schreibmaschine
     Beiträge: 1077 Wohnort: Wittingen
|
|
Hi!
Ich bekomme den Watchdog nicht aktiviert.
; Hier ein paar Bytes die gesendet werden, mit Terminal zu sehen
...
wdr
ldi temp0, 0b00001101
out WDTCR, temp0
loop:
...
rjmp loop
Nach Reset werden die Bytes am Terminal angezeigt, da ich den Befehl wdr nicht mehr verwende sollte der µC immer wieder neu starten. macht er aber nicht.
Hat jemand eine Idee?
Gruß, olfi
_________________
Gruß, olfi |
|
BID = 375239
DonComi Inventar
     
Beiträge: 8605 Wohnort: Amerika
|
|
Hallo Olfi13,
hast du denn das Fusebit ensprechend programmiert, um den Watchdog zu aktivieren?
_________________
|
|
BID = 375273
Jornbyte Moderator
      
Beiträge: 7243
|
.DSEG
Dog_Food: .byte 1 ;A place to store dog food
.CSEG
.equ Dog_Chow = 251 ;How many mS between feedings.
Init_Watchdog:
ldi TEMP,$0F ;000XXXXX Reserved
;XXX0XXXX Watchdog turnoff enable
;XXXX1XXX Watchdog enable bit 1=enable
;XXXXX000 (8) Watchdog timeout, 16mS
;XXXXX001 (9) Watchdog timeout. 32mS
;XXXXX010 (A) Watchdog timeout. 64mS
;XXXXX011 (B) Watchdog timeout. 128mS
;XXXXX100 (C) Watchdog timeout, 256mS
;XXXXX101 (D) Watchdog timeout, 512mS
;XXXXX110 (E) Watchdog timeout,1024mS
;XXXXX111 (F) Watchdog timeout,2048mS
out WDTCR,TEMP ;
;Initial states for watchdog timer
;
ldi TEMP,Dog_Chow ;Start a countdown for resetting the watchdog
sts Dog_Food,TEMP ;
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 375274
Jornbyte Moderator
      
Beiträge: 7243
|
Timed_Smack:
;Whatever you need to satisfy the internal or external watchdog
;The internal watchdog can be set to 16,32,64,128,256,512,1024,or 2048mS
;This scheme for timed reset is limited to 255mS between resets, but it can
;be used with any of the timeouts above. Resetting a watchdog more frequently
;than is needed, is mostly harmless.
;Just make sure that the value you set the timer to at the end of INIT is
;GREATER than the value you assign for Dog_Chow in EQUATES.INC
;The code to set the watchdog to a particular interval is in INIT.ASM
push TEMP ;Some routines that need to use this,
;also need to use TEMP..
lds TEMP,Dog_Food ;How many milliseconds before reset is needed?
and TEMP,TEMP ;Is it zero?
brne Smack_Done ;Nope, just exit
ldi TEMP,Dog_Chow ;Reload the timer for the next occurence
sts Dog_Food,TEMP ;
wdr ;This code will reset the internal watchdog
ldi TEMP,$0D ;000XXXXX Reserved
;XXX0XXXX Watchdog turnoff enable
;XXXX1XXX Watchdog enable bit 1=enable
;XXXXX000 (8) Watchdog timeout, 16mS
;XXXXX001 (9) Watchdog timeout. 32mS
;XXXXX010 (A) Watchdog timeout. 64mS
;XXXXX011 (B) Watchdog timeout. 128mS
;XXXXX100 (C) Watchdog timeout, 256mS
;XXXXX101 (D) Watchdog timeout, 512mS
;XXXXX110 (E) Watchdog timeout,1024mS
;XXXXX111 (F) Watchdog timeout,2048mS
out WDTCR,TEMP ;
Smack_Done:
pop TEMP ;
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 375276
Jornbyte Moderator
      
Beiträge: 7243
|
Ach ja, beim 90S2313 gibt es nichts an den Fuses zu schrauben. Beim Tiny2313 ist das was anderes.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 375278
DonComi Inventar
     
Beiträge: 8605 Wohnort: Amerika
|
Soso,
Danke für die Info.
_________________
|
BID = 375687
Jornbyte Moderator
      
Beiträge: 7243
|
oder so:
.include "2313DEF.INC"
.ORG 0
_Reset:
ldi yl,low(RAMEND)
out SPL,yl
sbiw yl,32
ldi zl,0x1f
out WDTCR,zl
ldi zl,0x17
out WDTCR,zl
;Start WatchDog
in zl,WDTCR
sbr zl,0x18
out WDTCR,zl
;Do
L0:
;Loop
rjmp L0
L1:
;Stop WatchDog
in zl,WDTCR
sbr zl,0x18
out WDTCR,zl
cbr zl,0x08
out WDTCR,zl
;Reset WatchDog
wdr
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 375850
JanG Gerade angekommen
Beiträge: 5 Wohnort: Vlotho
|
Kleine Ergänzung zum Tiny2313:
Auch hier muss man keine Fuses setzten um den Watchdog zu aktivieren, man kann ihn genauso einschalten wie beim 90S2313. Allerdings hat der Tiny das WDTON-Fuse, womit der Watchdog dauerhaft aktiviert wird und per Software nicht mehr ausgeschaltet werden kann.
Beim Tiny kann man im Gegensatz zum 90S den Watchdog auch so einstellen, das er einen Interrupt und keinen Reset auslöst oder erst einen Interrupt und dann den Reset.
|
BID = 376333
olfi13 Schreibmaschine
     Beiträge: 1077 Wohnort: Wittingen
|
Danke jornbyte!
Zeit ist wieder einmal knapp geworden. Ich melde mich aber sicherlich bei Erfolg
Gruß, olfi
_________________
Gruß, olfi
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 12 Beiträge im Durchschnitt pro Tag heute wurden bisher 2 Beiträge verfasst © x sparkkelsputz Besucher : 184118633 Heute : 4194 Gestern : 10194 Online : 208 16.5.2025 13:48 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0344729423523
|