0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovLiteraturaKratka šola programiranja mikrokontrolerjev

    Kratka šola programiranja mikrokontrolerjev

     

    Predstavitev razvojnega okolja Bascom-AVR

    Programski jezik Bascom obstaja v dveh verzijah: Bascom-AVR in Bascom-8051. Končnica nam nakazuje, za katero vrsto mikrokontrolerjev je namenjen prevajalnik. Mi bomo seveda uporabljali Bascom-AVR, ki si ga lahko brezplačno snamete s spletne strani www.mcselec.com. Z navedene spletne strani si snemite DEMO verzijo, ki je popolnoma delujoča verzija z omejitvijo velikosti programske kode, ki jo lahko prevedemo. Kot programerji – začetniki nam bo DEMO verzija popolnoma zadostovala, saj bodo naši programi kratki in ne bodo dosegali omejitve DEMO verzije.

    Bascom je identičen večini programov, ki tečejo v MS Oknih (Windows), zato o tem ne bi izgubljali besed. Ker je Bascom-AVR programsko orodje je prav, da se spoznamo z vrstami števil – spremenljivk, ki jih lahko uporabljamo v naših programih. Na voljo so nam spremenljivke Bit (1 bit), Byte (8 bitov = 1 byte), Integer (2 byte, vrednost spremenljivke je lahko od -32,768 do +32,767), Word (2 byte, vrednost spremenljivke je lahko od 0 do 65535), Long (4 byte, vrednost spremenljivke je lahko od -2147483648 do 2147483647, Single (32 bitov, vrednost spremenljivke je lahko od 1.5 x 10^–45 do 3.4 x 10^38), Double (64 bitov, vrednost spremenljivke je lahko od 5.0 x 10^–324 do 1.7 x 10^308) in String (do 264 byte, spremenljivke so tipa byte z dodatnim byte-om vrednosti nič na koncu).

    Spremenljivke lahko imajo poljubna imena, ki jih po navadi izberemo tako, da so med programiranjem prepoznavna. Načeloma lahko spremenljivke poimenujmo X1, X2, X3 itd., vendar bomo med programiranjem lažje razumeli program, če bomo spremenljivko, ki ponazarja vklop/izklop npr. releja poimenovali Rele. Vsekakor pa ne smemo uporabljati t.i. rezerviranih imen. Teh je preveč za to poglavje, zato si jih le oglejte v Help-u. Nekaj teh imen pa lahko naštejem za boljši občutek: OFF, ON, OR, OUT, OUTPUT, LCASE, LCD, LCDAT, LEFT, LEFT, LEN, LINE in podobno. Jaz si po navadi za imena spremenljivk izberem kar slovenske besede (brez šumnikov ali sičnikov), kot so »Vklop«, »Izklop«, »Tipka« itd.

    Preden bomo začeli s programiranjem, se podrobno spoznajmo še z izrazi bit in byte. Oba izraza smo srečali že v osnovni šoli pri predmetu matematika, kjer smo spoznavali binarni številski sistem, ki ima samo dve števili: 0 in 1. Spremenljivka vrste bit ima tudi dve vrednosti 0 ali 1. Medtem ko ima število vrste byte vrednosti med 0 do 255 (binarno: 00000000 do 11111111).

    Zdaj ko smo spoznali nekaj osnov pa lahko že pričnemo s programiranjem. Za začetek si zapomnimo enega najpogostejših ukazov: Do Loop. Ta ukaz pomeni, da se program, ki je napisan med Do in Loop teoretično odvija v neskončnost. Prične se pri Do, ko pa med izvajanjem od ukaza do ukaza pride do ukaza Loop se vrne na Do in tako naprej dokler ne izklopimo napajalne napetosti ali programsko skočimo iz te zanke. Morda se bo komu to zdelo nelogično, vendar vam bom pokazal, da se večina programov odvija v Do Loop zanki, izjemno redki programski primeri so narejeni brez Do Loop zanke.

    Prvi program

    Prvi program bo izjemno enostaven. Na mikrokontroler bomo priključili LED-ice, ki jih bomo z ustreznim programom vklapljali in izklapljali. LED-ice so zelo primerne za krmiljenje z mikrokontrolerjem saj za normalno svetilnost potrebujejo le nekaj voltov napetosti in nekaj mA toka, kar mikrokontroler, ki ga bomo obravnavali, z lahkoto zagotovi. Električno vezje je prikazano na sliki 2. Pozorni bralci bodo na shemi poleg mikrokontrolerja in LED-ic opazili tudi upore in resonator. Upor R1 služi za ustrezno resetiranje mikrokontrolerja, resonator služi generiranju takta, ki ga za svoje delovanje potrebuje ALU, ostali upori služijo omejitvi toka, ki teče skozi LED-ice. Vezju je še dodan konektor za programiranje mikrokontrolerja in s tem je osnovni opis vezja zaključen.

    Prvi primer programa, s katerim bomo vklapljali in izklapljali LEDice bo izgledal takole:

    Dim Ledica As Bit
    Do
    Config Portd = Output
    Portd.0 = Ledica
    Ledica = Not Ledica
    Wait 1
    Loop

    V tem programu smo najprej definirali vrsto spremenljivke, ki jo bomo uporabili. Ker vklapljamo oziroma izklapljamo samo eno LEDico, je dovolj, da imamo spremenljivko vrste Bit. Sledi Do-Loop zanka, v kateri ni skoraj nič programa. Najprej je potrebno definirati ali je določen port vhodni ali izhodni. V našem primeru je izhodni, zato smo ga tako tudi definirali. Nadalje smo definirali na katerem V/I portu se nahaja ta LEDica. V principu lahko LEDico priključimo na kateri koli prosti port mikrokontrolerja in to definiramo v programu – kar je s stališča izdelave vezja zelo praktično. Pri zahtevnejših projektih je namreč težje narediti enostavno tiskano vezje, kot pa spremeniti program. Sledi ukaz

    Ledica = Not Ledica in Wait 1.

    Ta stavek negira vrednost spremenljivke Ledica: če je bila predhodno 1, bo zdaj 0 in obratno. Ukaz

    Wait 1

    je trivialen in pomeni, da mikrokontroler na tem mestu v programu počaka 1 sekundo. Enostaven program bo povzročil, da bo LEDica utripala v 1 sekundnem taktu.k, zdaj smo napisali program, treba pa bo vezje tudi realizirati. Tukaj se bomo zamudili malce več časa, saj bom predstavil razvojno okolje MiniPin, s katerim veliko elektronikov programira pa tudi testira svoje programe.

    Opis MiniPin razvojnega orodja in programiranje

    Slike ni
    KLIK za povečavo

    MiniPin razvojno orodje ni nič drugega kot ploščica tiskanega vezja, na katerem so že prispajkani določeni elektronski elementi, ki jih programer, ko programira mikrokontroler, s pridom uporablja. MiniPin lahko uporabimo tako za 20 kot tudi 40-pin mikrokontrolerje družine 8051 in AVR. Ker v našem nadaljevanju teče beseda o programiranju AVR-jev, se bomo osredotočili na AVR-je. Nadalje je na MiniPin že predviden prostor za kvarčni kristal oziroma 3-pin keramični resonator, ki ga lahko uporabimo namesto kvarčnega kristala. Na vezju najdemo 4×8 LEDic (ki so vezane tako, kot je prikazano na Sliki 2), 4 tipke + 1 reset tipko, priključke za LED in LCD prikazovalnike, 1Wire elemente, I2C spominske elemente, RS232, RS485 ter integriran regulator napetosti, s katerim napajalno napetost mikrokontrolerja nastavimo na 5V ali na vedno bolj popularnih 3,3V. MiniPin ima tudi več razširitvenih konektorjev, ki jih bomo spoznali sproti.

    Prejšnji članek
    Naslednji članek