0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovBaza znanjaBascom kotičekWatchdog timer pri AVR mikrokontrolerjih

    Watchdog timer pri AVR mikrokontrolerjih

    V zadnjem primeru se po izteku WDT intervala generira prekinitev, vendar šele po naslednjem resetu mikrokontrolerja.

    Za oba načina delovanja se WDT konfigurira na isti način (pri ATtiny2313 lahko izberemo intervale trajanja 4 in 8 s):

    Config Watchdog = 4096

    V reset načinu ga lahko zaženemo s »Start« ukazom:

    Start Watchdog

    Slike niČe želimo WDT uporabiti v prekinitvenem načinu, moramo najprej definirati WDT prekinitev in mu pripojiti prekinitveno rutino:

    On Wdt Wdt_sub
    Enable Interrupts
    ...
    ...
    Wdt_sub:                                 'delaj kar je   potrebno
    Return 

    nato ga zaženemo z ukazom:

    Enable Wdt

    Če želimo WDT pognati v obeh načinih, napišemo Start in Enable ukaza:

    Start Watchdog
    Enable Wdt

    Oba ukaza ni nujno napisati enega za drugim, je pa potrebno imeti v mislih, da oba uporabljata isti WDT števec. WDT interval začne teči od trenutka, ko je izvršen prvi ukaz o zagonu. Tudi zaporedje Start in Enable ukazov ni pomembno. Vedno se bo najprej izvršila prekinitev, pri drugem izteku intervala pa reset.

    Reset mod zaustavimo z ukazom Stop:

    Stop Watchdog

    Interrupt mod zaustavimo z ukazom Disable:

    Disable Wdt

    Kako je bil generiran reset mikrokontrolerja (preko WDT ali na neki drugi način), ugotovimo s preverjanjem WDRF bita na isti način, kot pri ATmega8515 mikrokontrolerja. Primer »WDT_test_2313.bas« (ki ga lahko brezplačno dobite v uredništvu revije) ilustrira uporabo WDT pri mikrokontrolerju ATtiny2313 v MiniPin-u. Vloga tipk je naslednja:

    • TP1: požene WDT v reset načinu,
    • TP2: požene WDT v prekinitvenem načinu,
    • TP3: zaustavi WDT v obeh načinih,
    • TP4: resetira WDT.

    Ko pritisnemo tipko TP1 ali TP2, se WDT zažene. V časovnih intervalih, krajših od 4 s, moramo pritiskati TP4. Če je ta interval krajši, bo WDT:

    • če je WDT v reset modu, bo resetiral mikrokontroler (na prikazovalniku se izpiše sporočilo »WDT reset«),
    • če je WDT v interrupt modu, bo izvedel prekinitveno rutino (na prikazovalniku se izpiše »WDT int«),
    • če je WDT v obeh modih (pritisnili smo TP1 in TP2), se najprej izvede prekinitvena rutina in nato se resetira mikrokontroler (na prikazovalniku se najprej izpiše sporočilo »WDT int« in nato »WDT reset«).

    Vsebina brošure

    Virtualna trgovina, nakup brošure in informacije!

    Watchdog timer pri AVR mikrokontrolerjih

    Avtor: Vladimir Mitrović

    Ljubljana, februar 2010

    Prejšnji članek
    Naslednji članek