Waakhond in AT89S8252?!?

M

mrcube_ns

Guest
Ik moet waakhond gebruik in AT89s8252 (ik nieuw in atmel programmering).

How to do it?

Sommige code voorbeelden zijn welkom.

Thanks in Advance.

Mr.Cube

 
Monstercode

/ / Refresh macro
# define REFRESH_WATCHDOG () WMCON = WMCON | 0x02

void main ()
(
/ / Init WatchDog
WMCON = WMCON | 0xE0; / * time-outperiode = 2048ms * /
WMCON = WMCON | 0x01; / * Enable WatchDog * /

while (1)
(
/ / Refreshing
REFRESH_WATCHDOG ();
)
)

 
Een kleine tip: niet vernieuwen niet uw waakhond binnen een interrupt routine omdat de meeste van de tijd interrupts worden nog steeds weergegeven terwijl uw belangrijkste routine is vastgelopen voor sommige duistere reden

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Lachten" border="0" />Beter uw waakhond vernieuwen binnen een routine die niet genoemd wordt te vaak of enkele vlaggen ingesteld binnen een paar routines en slechts vernieuw uw waakhond (en reset de vlaggen) wanneer alle flags zijn gezet (dit kan worden gedaan in je interrupt routine), werken veel beter voor mij ...

met vriendelijke groet

 
Als ik het goed begrijp moet je vernieuwen wd elke 2 sec (max), waarop xtal?

Mr.Cube

PS.C-man je niet bang dat je uC opnieuw zal worden opgestart wanneer sommige van die vlaggen niet ( 'couse van een aantal voorwaarden of input staten set)?

 
WD opereert vanuit een onafhankelijke oscillator.
Kijk datasheet pagina 9.
http://www.atmel.com/dyn/resources/prod_documents/doc0401.pdf.
Vernieuwen moet sneller worden dan slected periode.

 

Welcome to EDABoard.com

Sponsor

Back
Top