Watchdog în AT89S8252?!?

M

mrcube_ns

Guest
Am nevoie pentru a utiliza în AT89s8252 watchdog (I nou în Atmel programare).

Cum să faci asta?

Unele exemple de cod sunt binevenite.

Thanks in advance.

Mr.Cube

 
Exemple de cod

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

void main ()
(
/ / Init Watchdog
WMCON = WMCON | 0xE0; / * TimeOut Perioada = 2048ms * /
WMCON = WMCON | 0x01; / * Activaţi Watchdog * /

în timp ce (1)
(
/ / Racoritoare
REFRESH_WATCHDOG ();
)
)

 
Un mic sfat: nu vă reîmprospătaţi Watchdog interiorul o întrerupere de rutină, pentru că de cele mai multe ori întrerupe continuă să fie difuzate, în timp ce
dvs. principal de rutină a prăbuşit pentru unele obscure motiv

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Zâmbi" border="0" />Mai bine de reîmprospătare
dvs. Watchdog interiorul o rutină care nu este numit de prea multe ori sau a stabilit câteva steaguri în interiorul câteva rutine şi numai de reîmprospătare
dvs. watchdog (şi a reseta steaguri),
atunci când toate steagurile sunt stabilite (acest lucru poate fi realizat intr-o rutina de întrerupere), lucrări de mult mai bine pentru mine ...

toate cele bune

 
Dacă am înţeles bine, trebuie să reîmprospătaţi wD fiecare 2 sec (max), pe care xtal?

Mr.Cube

PS.C-om, nu ţi-e frică că-ţi UC va reporni dacă unele dintre aceste steaguri nu sunt set ( 'couse unor condiţii de intrare sau state)?

 
WD operează independent de la o Oscilator.
Uită-te la datasheet pagina 9.
http://www.atmel.com/dyn/resources/prod_documents/doc0401.pdf.
Actualizează trebuie să fie mai rapid atunci slected perioadă.

 

Welcome to EDABoard.com

Sponsor

Back
Top