30. septembra, 2009

Vpliv spremembe hitrosti delovanja mikrokontrolerja na trajanje Wait ukaza

Revija 169 169 26 - Vpliv spremembe hitrosti delovanja mikrokontrolerja na trajanje Wait ukazaVsi Bascomovi Wait ukazi in nekateri drugi ukazi, v katerih program čaka (npr. »Debounce«, ukazi za delo z alfanumeričnim displejem itd.) so sprogramirane kot zanke, ki se odvrtijo po določenem številu ciklov. Med postopkom prevajanja programa Bascom prevajalnik vzame v obzir vrednost »$crystal« parametra in po njej nastavi števce tako, da bi se dejanski čas nastavil z želenim. V novejših verzijah Bascoma je to precej dobro rešeno. Seveda pri predpostavki, da frekvenca oscilatorja ustreza »$crystal« parametru.

Novejši mikrokontrolerji iz družine 8051 (AT89Sx051, AT89S8253) imajo možnost pohitritve delovanja. S postavljanjem X2 (=Clkreg.0) bita se frekvenca pogonskega takta podvoji in mikrokontroler deluje 2x hitreje. Nekateri novi AVR-ji imajo še večjo fleksibilnost pri izbiri hitrosti delovanja: nastavljivi »clock-prescaler« omogoča deljenje frekvence oscilatorja s faktorji 2, 4, 8, 16, 32, 64, 128 in 256 (ATtiny družina) ali katerim koli faktorjem v razponu od 2 do 129 (ATmega103, ATmega64/128…). Če želimo, da časovne rutine trajajo toliko, kolikor smo napisali, moramo vrednost »$crystal« parametra ustrezno nastaviti. Nekoliko primerov se nahaja v tabeli 1.

Postavi se vprašane: kaj pa, če se hitrost delovanja programa programsko spreminja med delovanjem programa? To je možno narediti z vpisom ustreznih vrednosti v konfiguracijske registre mikrokontrolerja. Ker se parametri Wait ukazov definirajo med procesom prevajanja programa, bodo programske spremembe hitrosti delovanja vplivala tudi na trajanje Wait rutin. Mi bi pa vseeno želeli, da Wait1 vseeno traja 1 sekundo pri vseh hitrostih delovanja.

Sprememba hitrosti dela mikrokontrolerja AT89S8253

Hitrost delovanja tega mikrokontrolerja je določena z vrednostjo Clkreg.0 bita. Tovarniško je Clkreg.0 pobrisan in mikrokontroler dela v režimu X1, vendar je to programsko enostavno spremeniti (glej program P1).

Celotni članek

Vpliv spremembe hitrosti delovanja mikrokontrolerja na trajanje Wait ukaza
2009_SE168_26