
Beseda reset se pogosto uporablja. Včasih v zvezi s programskim postavljanjem in brisanjem posameznih bitov SET/RESET, včasih v zvezi s ponastavitvijo mikrokontrolerja. Kakorkoli pa je ta RESET videti “vauu”, je to čisto prava in povsem običajna prekinitvena rutina, ena od mnogih, ki jih lahko uporabimo v svojih programih. Mikrokontroler ima več virov prekinitev, pa tudi več virov ponastavitve – reseta. Velikokrat je bolj pomembno »trdno mirovanje« v stanju reseta, kot »labilno delovanje« z nepredvidljivimi posledicami. Spoznali bomo, da reset ni le reset, ampak s sabo prinaša tudi informacijo, kateri od virov je povzročil prekinitev, kar lahko pomembno vpliva na to, kako bomo po resetu nadaljevali z izvajanjem programa.
Ponastavitev mikrokontrolerja – Reset
Ob resetu se vsi V/I (vhodno-izhodni) registri postavijo na svoje začetne vrednosti in prične se izvajanje programa, na katerega skočimo prek RESET vektorja, ki se nahaja ravno na naslovu $0000H. Morda je dobro vedeti tudi to, da imajo AVR mikrokontrolerji 16-bitno organizacijo Flash programskega spominskega prostora, ker so tudi ukazi na binarnem strojnem nivoju v 16-bitni ali 32-bitni obliki. S tem, ko je na naslovu 0000 zapisano, kje naj se začne izvajanje programa porabimo 32 bitov (2 x Word) Flash programskega prostora, vendar to pomeni le dve lokaciji programskega pomnilnika, ker je ena programska lokacija predstavljena s 16-timi biti. Preden se odločimo, kateri mikrokontroler bomo uporabili v naši aplikaciji, je dobro vsaj preleteti vsebino tehnične dokumentacije, v kateri bomo našli vse mogoče prekinitve, ki jih mikrokontroler podpira. Na sliki 1 je primer takšne tabele z naslovi prekinitvenih vektorjev za mikrokontroler ATMega 32.
Prekinitve
Prekinitveni vektor je vnaprej določen naslov v programu, kjer je zapisano, kam skočiti v primeru, ko se ta prekinitev zgodi. Mi moramo poskrbeti za to, da je na naslovih prekinitvenih vektorjev vpisan skok na lokacijo v programu, kjer se začne podprogram s prekinitveno rutino. Vsaka prekinitvena rutina se konča z ukazom RETURN.

Elektronika za začetnike – Programiranje mikrokontrolerjev IX (33)
2012_SE199_43


