Fórum témák

» Több friss téma
Cikkek » Nulláról a robotokig - PIC Mikrovezérlők III rész
Nulláról a robotokig - PIC Mikrovezérlők III rész
Szerző: Topi, idő: Júl 13, 2007, Olvasva: 51472, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   13 / 19

A WDT (Watch Dog Timer) mint a neve is mutatja, egy őrző-blöki. Őrzi a programunkat. Működése rettentő primitív, de annak ellenére nagyon hasznos funkciót lát el. A WDT egy egyszerű számlálón alapszik, mely x időközönként növekszik egyel. Viszont ha túlcsordult, tehát elszámolt az 1 bájtig (255) akkor utána reseteli a processzort. Ha bekapcsoljuk a WDT-t és az előbb említett számlálót nem nullázzuk egyfolytában, akkor mindig újra fog indulni a proci.

Ebből már látszik mi a feladatunk. WDT használat esetén sokmindent máshogy kell megírni, mivel még az időzítő rutinokba is bele kell csempészni a nullázást. Letesztelni leginkább úgy tudjuk, hogy direkt lefagyasztjuk a processzort.

Lényegét tekintve használatakor semmi más dolgunk nincs, mint állandóan törölni ezt a számlálót. Ha lefagy a programunk, akkor nem fogja senki törölgetni ezt a regisztert és lefagyás után kis idővel saját magát újraindítja.

Természetesen ha WDT-t használunk, akkor komolyan át kell gondolni a programunk struktúráját és egy kicsit máshogy kell felépíteni mindent. Ezek közé tartozik, hogy kerüljük az induláskori hosszú inicializációt. Ha ipari körülményekre készítünk alkalmazást, akkor erre szükségünk lesz, és pl. úgy kell a ventillátor vezérlőnek újraindulnia, hogy maximum csak felpörgetheti a ventillátort erősebben, de ne kelljen semmit megnyomkodni, ne kelljen manuálisan belefolyni a restartba.

A WDT-nek nincs külön megszakítás rutinja, hisz ha ő bejelez egy megszakítást, akkor automatikusan újraindul minden, nem nekünk kell újraindítani bármit is. Az alábbi biteket használjuk hozzá:

PSA: Prescaler Assignment bit
1 = Előosztó WDT-hez beállítva
0 = Előosztó Timer0-hoz beállítva

PS2 : PS0: Prescaler Rate Select bits (Előosztás kiválasztó bitek, mennyivel osztják a fő órajelet)

Ebben az esetben viszont a PSA bitet 1-re kell állítani, és majd a fordító konfig biteket is módosítanunk kell.

Nézzük a próba programot assembly nyelven...


A cikk még nem ért véget, lapozz!
Következő: »»   13 / 19
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem