0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaElektronika za začetnike - Programiranje mikrokontrolerjev II. (26)

    Elektronika za začetnike – Programiranje mikrokontrolerjev II. (26)

    V prejšnji številki revije smo ugotovili, da naprave, krmiljene z mikrokontrolerji, predstavljajo tipičen primer usklajenega delovanja programske in strojne opreme in da obe v nekem projektu opravljata enakovreden del naloge. Da sta pri opravljanju neke zadane naloge programska in strojna oprema resnično usklajeni in učinkoviti, se moramo že med načrtovanjem odločiti, katere naloge bo katera od njiju opravljala. Normalno je, da poskusimo v vsakem posameznem primeru naloge zaupati tisti vrsti opreme, ki jih lahko izvede bolj kvalitetno, hitreje, ceneje in z manjšo porabo energije. Ker nobena od njiju ni idealna izbira pri danih vhodnih zahtevah, smo pri načrtovanju največkrat prepuščeni intuiciji in izkušnjam, ki jih imamo pri načrtovanju vezij, ki opravljajo podobne naloge.

    Razdelitev nalog

    Slike niNazadnje smo obravnavali programski tok napravice, ki ob pritisku na tipko VKLOP prižge luč, ob pritisku na tipko IZKLOP pa jo ugasne. Takšno delovanje ni nič posebnega, vendar bo to prvi primer programiranja mikrokontrolerja z Bascom-AVR, v katerem bomo na preprostem primeru osvojili prve korake in vse postopke, ki so potrebni, da bo napravica delovala tako, kot smo načrtovali.

    Najprej moramo podobno določiti (definirati) vhodne in izhodne zahteve. Čisto na začetku si je te zahteve najbolje zapisati:

    Vhodi:
    Tipka VKLOP       PortB.2
    Tipka IZKLOP      PortB.0
    Izhodi:
    LUČ                    PortB.1

     

    Zahteve:

    • ob priključitvi napajanja naj ostane luč ugasnjena,
    • ob pritisku na tipko VKLOP naj se luč prižge. Ponovni pritisk naj ne vpliva na stanje izhoda,
    • ob pritisku na tipko IZKLOP naj luč ugasne. Ponovni pritisk naj ne vpliva na stanje izhoda,
    • sočasen pritisk na obe tipki naj ne spremeni stanja luči,
    • ponovni vklop/izklop naj bo mogoč šele po določenem času.

    Slike niDiagram programskega toka bomo dopolnili z dodajanjem simbolov strojne opreme in programskega bloka, ki bo poskrbel za časovno zakasnitev možnosti ponovnega vklopa po izklopu ali izklopa po vklopu luči. S tem se bomo izognili možnosti prepogostega vklopa in izklopa luči (marsikdo bi se lahko domislil tekmovanja v številu vklopov v določenem času).

    Vrata mikrokontrolerja

    Vsak AVR mikrokontroler ima vrata (angl. port), prek katerih se povezuje z ostalo strojno opremo v nekem vezju. Priključki vrat so pravzaprav edina povezava med programsko in strojno opremo v napravah, ki jih krmilimo z mikrokontrolerjem, zato moramo poznati vsaj osnove njihovega delovanja. Vsa stikala in preklopniki, ki jih omenjam, so seveda polprevodniška MOSFET stikala in so sestavni del tabletke mikrokontrolerja.

    Slike niVrata imajo lahko do osem priključkov, glede na potrebe pa lahko vsakemu priključku določimo, kakšna bo njegova funkcija: lahko je vhod ali izhod. Izbrati moramo torej, ali bomo nek priključek brali ali vanj zapisovali. To lahko določimo za celotna vrata ali za vsak posamezni priključek. Kako je to izvedeno v notranjosti mikrokontrolerja? S poenostavljeno shemo bom poskusil to razložiti na preprost način.

    Vzeli bomo primer, da nek priključek pripada vratom »B«, zato se register imenuje DDRB. Če bi bil to na primer eden od priključkov vrat »C«, bi se ta register imenoval DDRC . Posamezen priključek nekih vrat bo vhod, če v DDR (Data Direction Register) teh vrat (v našem primeru »B« vrat,) na ustreznem mestu (ki ustreza položaju priključka) vpišemo ničlo (0). Če je na isto mesto vpišemo enko (1), postane ta priključek vrat izhod. Kot lahko vidimo na sliki 1, smo z vpisom enic in ničel v DDR register preklopili vhodne preklopnike (oznaka »Pr«) in s tem usmerili tok podatkov v mikrokontroler ali iz njega. Posameznim priključkom smo s tem določili namen: lahko so vhod ali izhod in nič drugega! To je potrebno narediti le enkrat v programu (pri inicializaciji – začetnih nastavitvah), saj vrednost v vseh DDR registrih ostane zapisana, dokler je uporabnik z vpisom nove vrednosti ne spremeni. Na sliki 1 je lepo ponazorjeno, kako stanje posameznega bita v DDR vpliva na vhodni »preklopnik«, da lahko priključek uporabljamo kot vhod ali izhod. Narisana sta priključka PORTB.0 in PORTB.1, s tem, da je prvi izbran kot izhod (vpisana je »1«), drugi pa kot vhod (vpisana je »0«). Celoten sistem »preklopnikov« je narisan za PORTB.1, enako vezavo pa imajo vsi priključki vseh vrat mikrokontrolerja.

    Slike niV Bascom-AVR imamo za nastavitev priključkov, kot jih vidite na sliki 1a, da jih lahko uporabljamo kot vhode ali izhode.

    Prvi ukaz določa vhodno ali izhodno funkcijo celotnih vrat, torej vseh priključkov, ki jih neka izvedba mikrokontrolerja daje na voljo uporabniku. Običajno je to osem priključkov, pri izvedbah v ohišjih z manj priključki pa jih je na voljo manjše število. Poglejmo primera ATtiny45 in ATMega168 v DIL ohišju.

    Celotni članek

    Elektronika za začetnike – Programiranje mikrokontrolerjev II. (26)

    2011_SE192_43