elomax

[ Techniek ] [ Shop ] [ Site map
Inleiding ] Processor ] Ontwikkelomgeving ] Interrupts ] Digitale I/O ] Seriele communicatie ] Timers ] A/D Conversie ] Puls teller ] SPI ] [ Watchdog ] Clock monitor ] EEPROM ] Configuratie ] Ontwerp technieken ] Toepassings voorbeeld ]

Terug
Omhoog

Watchdog

De watchdog is een teller, die regelmatig via een speciale procedure op 0 terugggezet moet worden. Zodra dit niet meer gebeurt, wordt een interrupt gegenereerd. Deze interrupt kan niet geblokkeerd worden met het I-bit.

De watchdog wordt gebruikt om te controleren of het programma van de micro-controller nog correct loopt. Als bijvoorbeeld het terugzetten van de watchdog in de hoofdlus van het programma gebeurt, en het programma door een storing niet langer de hoofdlus doorloopt, komt na bepaalde tijd automatisch de interrupt van de watchdog. In de routine die deze interrupt afhandelt kan dan het programma opnieuw opgestart worden (gereset), waardoor de micro-controller weer de normale functies vervult.

Omdat na een watchdog interrupt alle I/O van de micro-controller is gereset (in die zin werkt de watchdog dus als een reset-circuit) zal de afhandeling van de watchdog interrupt er in het algemeen op neerkomen dat het programma weer opnieuw wordt gestart.

De watchdog is een apart subsysteem, dat normaal gesproken niet actief is. De watchdog is alleen actief wanneer het NOCOP bit in het CONFIG register een '0' is. Het CONFIG register is uitgevoerd in EEPROM cellen, en moet op een speciale manier geprogrammeerd worden. Zie hiervoor verderop.

De tijd waarbinnen de watchdog afloopt wordt geprogrammeerd in het OPTION register. Twee bits in dit register bepalen hoe lang het duurt voordat de watchdog de micro-controller reset. De watchdog moet dus steeds binnen deze tijd worden teruggezet op 0. De tijden zijn als volgt te kiezen:

CR1

CR0

tijd

0

0

16.384 ms

0

1

62.5 ms

1

0

250 ms

1

1

1 s

Terugzetten van de watchdog geschiedt door eerst $55 te schrijven naar het COPRST register, gevolgd door $AA naar dit register te schrijven.

De registers die de werking van de watchdog bepalen:

COPRST $103A

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

 

OPTION $1039

adpu

csel

irqe

dly

cme

-

cr1

cr0

 

CONFIG $103F

-

-

-

-

nosec

nocop

romon

eeon

© 2005...2008 Elomax [Voorwaarden ]