Watchdog i AT89S8252?!?

M

mrcube_ns

Guest
Jeg trenger å bruke vaktbikkje i AT89s8252 (jeg ny i atmel programmering).

Hvordan gjøre det?

Noen kode eksempler er velkomne.

Takk på forhånd.

Mr.Cube

 
Eksempelkode

/ / Oppdater makro
# define REFRESH_WATCHDOG () WMCON = WMCON | 0x02

void main ()
(
/ / Init Watchdog
WMCON = WMCON | 0xE0; / * Tidsavbruddsperioden = 2048ms * /
WMCON = WMCON | 0x01; / * Aktiver Watchdog * /

mens 1 ()
(
/ / Refreshing
REFRESH_WATCHDOG ();
)
)

 
Et lite tips: ikke oppdater din vaktbikkje inne i et interrupt rutine fordi det meste av tiden avbryter fremdeles kjører mens main rutinen har krasjet eller annen obskur grunn

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smil" border="0" />Bedre oppdatere vaktbikkje i en rutine som ikke kalles for ofte, eller angi noen flagg i noen rutiner og bare friske opp vaktbikkje (og tilbakestille flaggene) når alle flagg er satt (dette kan gjøres innenfor din avbryte rutine), arbeider mye bedre for meg ...

med vennlig hilsen

 
Hvis jeg forstår godt at du må oppdatere wd hvert 2 sek (maks), som XTAL?

Mr.Cube

PS.C-mann du ikke redd for at UC vil starte om noen av disse flaggene ikke er angitt ( 'kurset av visse forhold eller input stater)?

 
WD opererer fra en uavhengig oscillator.
Se på dataarket side 9.
http://www.atmel.com/dyn/resources/prod_documents/doc0401.pdf.
Oppdater må være raskere da slected periode.

 

Welcome to EDABoard.com

Sponsor

Back
Top