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
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 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! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |