Bascom AVR začetni tečaj

Size: px
Start display at page:

Download "Bascom AVR začetni tečaj"

Transcription

1 Bascom AVR začetni tečaj Delovno gradivo Gregor MAČEK, Vilko SUSTIČ, Jure MIKELN Bascom AVR začetni tečaj, marec 2008

2 2 Bascom AVR začetni tečaj, marec 2008

3 Uvod Jure Mikeln Uvod v publikacijo Priče smo silnemu napredku na vseh področjih tehničnih znanosti. Novodobne tehnične znanosti se imajo temu napredku zahvaliti predvsem razvoju procesorske moči osebnih računalnikov, kar je omogočilo razvoj novih zmogljivih programskih orodij. Elektroniki poznamo veliko programskih orodij, brez katerih si sodobnega dela ne znamo več predstavljati. Podobno velja tudi za moderne elektronske komponente, izmed katerih bi poudaril mikrokontrolerje, ki so v zadnjih 15 letih tudi naredili ogromen korak naprej. Ta napredek se vidi na cenovnem, predvsem pa na tehničnem področju. Tako danes za nekaj evrov dobimo izredno zmogljiv ARM mikrokontroler (32-bitni mikrokontroler), ki ima izredno zmogljivo periferijo, kot so analogni/digitalni in digitalno/analogni (A/D in D/A) pretvorniki, Ethernet, CAN ter USB vmesniki, krmilniki za motorje, moduli za realno uro in podobno. Pri tem pa ne zamešajmo izrazov: v PC-ju ne deluje mikrokontroler, pač pa zmogljiv procesor (64-bitni), ki signale po vodilu pošilja na razne enote, kot so video, spominska, krmilnik trdih diskov itd. Razlika med procesorjem in mikrokontrolerjem je v tem, da procesor nima vgrajene periferije. V tečaju, ki je pred vami, se z ARM mikrokontrolerji ne bomo spoznavali, pač pa smo pripravili osnovne informacije, ki naj bi jih poznal začetnik - programer, da bi lahko suvereno začel programirati mikrokontrolerje družine AVR. Takšen mikrokontroler bo brez težav poganjal motorje, vklapljal ter izklapljal releje, sprejemal signale z različnih senzorjev in tipk, signale obdeloval ter s pomočjo LCDprikazovalnika prikazoval podatke in sodeloval z drugimi mikrokontrolerji ter tako predstavljal mikrokontrolerski sistem tudi za večje zahteve. Po potrebi bo alarmiral oskrbovalce sistema bodisi zvočno, bodisi preko mobilnih telefonov ali radijskih postaj. AVR mikrokontrolerji AVR mikrokontrolerji so eni izmed popularnih mikrokontrolerjev, ki so dobavljivi že približno 10 let. Mikrokontroler si predstavljajmo kot črno škatlo, ki ima vhodne in izhodne priključke. Mikrokontroler brez programa je mrtev in kot tak res neuporaben. Zaživi le, ko se v njem vpisani program prične izvajati. Jasno pa je, da je za to potrebna tudi napajalna napetost. Mikrokontrolerje dandanes uporabljamo v praktično vsaki napravi, bodisi da je to igrača ali zahteven industrijski PLC krmilnik. V vseh teh napravah je vsaj en mikrokontroler, vemo pa, da v sodobnih avtomobilih deluje več mikrokontrolerjev. Obstaja več vrst mikrokontrolerjev, od 1, 4, 8 pa tja do 32-bitnih. Danes se največ uporabljajo 8 in 32- bitni, redko pa še kakšni drugi. Mikrokontrolerji, o katerih bo govora v seriji člankov so 8-bitni. AVR mikrokontroler vsebuje ALU (arithmetical logical unit) enoto, več vhodno/izhodnih (V/I, v tuji literaturi je uveljavljen izraz I/O input/output port) vrat ali portov, FLASH spomin in še več enot, o

4 katerih bo govora kasneje. V FLASH spomin s pomočjo programatorja naložimo naš program, ki ga v zaporednih korakih izvaja ALU. V/I porti so večinoma dvosmerni s tem, da moramo s programom definirati ali bo posamezni pin vhodni ali izhodni. Mikrokontroler za svoje delovanje potrebuje napajalno napetost in večinoma tudi kvarčni kristal oziroma keramični resonator, ki ALU-ju daje t.i. taktni signal, s katerim ALU izvaja programsko kodo. V kolikor ALU nima takta se njeno delovanje ustavi in se spet nadaljuje, ko obnovimo taktni signal. V določenih primerih pa tudi kvarčni kristal ali resonator nista potrebna, saj imajo AVR mikrokontrolerji vgrajen t.i. RC oscilator, ki daje takt ALU-ju in s tem omogoča delovanje mikrokontrolerja. Izbor med RC oscilatorjem ali zunanjim kvarčnim kristalom oz. resonatorjem definiramo med postopkom programiranja. Notranja blok shema mikrokontrolerja ATTiny Bascom AVR začetni tečaj, marec 2008

5 Kot vidite je v notranjosti mikrokontrolerja veliko blokov, o katerih ne bomo izgubljali besed. Zaenkrat naj bo mikrokontroler za nas črna škatla z vhodi in izhodi, ki jo bomo sprogramirali z našim programom. Program v mikrokontrolerju se odvija glede na ukaze t.i. strojne kode, ki ALU-ju določa, kaj bo naredila. Ker ALU deluje z binarno matematiko je ukaz v strojni kodi sestavljen iz ničel in enic pač v binarni kodi. V začetkih mikrokontrolerjev so programerji za programiranje uporabljali strojno kodo, vendar so kmalu ugotovili, da je to izredno nepraktično. Zato so pričeli uporabljati zbirnik (v tuji literaturi se uporablja izraz assembler), dandanes pa vedno bolj posegamo po višjih programerskih jezikih, kot so C, različne vrste visual basic programov ter basic programov, ki programsko kodo napisano v basic-u prevedejo v strojno kodo. Med basic programe spada tudi programski jezik Bascom, ki se je v Evropi, pa tudi v Sloveniji lepo uveljavil. Zavedamo se, da ima Bascom (kot tudi drugi višji programski jeziki) svoje prednosti in slabosti, vendar trdno stojim za stališčem, da je Bascom idealno programsko orodje za začetnike v programiranju, kar bo pokazano v nadaljevanju. Dovoljeno kopiranje publikacije ali dela le-te, pri čemer navedite tudi vir in avtorje!

6 Bascom AVR Jure Mikeln Predstavitev razvojnega okolja Bascom-AVR Bascom trenutno obstaja v dveh verzijah: Bascom-AVR in Bascom 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 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 tukaj 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 do , 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 ponavadi 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 ta prispevek, 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. 6 Bascom AVR začetni tečaj, marec 2008

7 Shema vezave mikrokontrolerja Preden bomo začeli s programiranjem, se podrobno spoznajmo še z izrazi bit in byte. Oba izraza smo srečali že v osnovni šoli v 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: do ). 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 Loop se vrne na Do in tako naprej dokler ne izklopimo napajalne napetosti. 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 (enostavno povedano so to polprevodniške lučke, ki se v primerjavi z lučkami z žarečo nitko izjemno malo grejejo in so tudi fizično majhne), 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. Pozorni bralci bodo na shemi poleg mikrokontrolerja in LED-ic opazili tudi upore in resonator. Upor R1 služi za ustrezno

8 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 zahtevnejih 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. 8 Bascom AVR začetni tečaj, marec 2008

9 Simulator v Bascom-u V tem delu seminarja vam bomo prikazali uporabo Simulatorja v Bascomu. Bascom ima vgrajen softverski simulator, ki nam pomaga pri razhroščevanju programa. Simulator je zgolj enostaven pripomoček in ne 100% zanesljivo orodje, saj v simulatorju ne moremo dobro simulirati prekinitev, časovnih zank in drugih zahtevnejših operacij. V simulatorju bomo lahko spremljali potek programa, vpisovali vrednosti spremenljivk med izvajanjem simulatorja ter na podlagi tega spremljali odziv na LCD simulatorju kot tudi na LEDicah. Simulator je razdeljen na več oken. V glavnem oknu vidimo naš program oziroma le del programa, saj za celoten program ni dovolj prostora v oknu. Nadalje vidimo okno, kjer so zavihki Variable, Locals, Watch, up, Interrupts. Nadalje je tukaj še okno Interrupts in okno z zavihkoma UART0/UART1. Od teh oken bomo najbolj pogosto uporabljali okno s programom, okno z zavihki Variable ter okno z UART zavihkoma. V prvem oknu bomo spremljali potek izvajanja programa. Izvajanje programa lahko sprožimo na dva načina: tekoče ali po korakih. Če izberemo tekoče izvajanje progama bomo izredno težko spremljali, kaj se dogaja s programom, saj se bo program odvijal zelo hitro in tako bo spremljanje praktično nemogoče. Zato ponavadi izberemo izvajanje po korakih (F8). Vsakič ko pritisnemo tipko F8 se bo kazalec pri vrstici programa premaknil za eno vrstico naprej in izvedel napisan ukaz. Če želimo v tem trenutku spremeniti vrednost določene sprejemljivke kliknemo v okno Variables in ročno vpišemo ime sprejemljivke oziroma jo izberemo iz padajočega menija. Potrdimo z Enter in v oknu Value vpišemo vrednost spremenljivke ter potrdimo z Enter. Nato lahko spet izvajamo program v simulatorju po korakih. V kolikor pa se izkaže, da je izvajanje programa dolgo, lahko izberemo tekoče izvajanje programa. V tem primeru si v oknu s programom označimo t.i. Break točke, kjer se izvajanje simulatorja ustavi. break točke postavimo tako, da z desnim gumbom miške kliknemo pri odseku programa, kjer želimo imeti Break točko in kliknemo Toggle Break point. Na isti način Break točko tudi odstranimo.

10 Simulator in UART Simulator lahko s pridom uporabljamo pri simulaciji RS232 komunikacije. Za ta namen je pripravljeno okno UART, v katerem se bo izpisovala vsebina (podatki), ki bi se sicer izpisovali na terminalu. V okno UART lahko tudi vnesemo spremenljivke, ki jih sprejemamo po UART-u recimo iz tipkovnice. Simulator in LCD/LED Simulator lahko prikazuje izpis na LCD-ju oziroma na LEDicah. Kliknemo na ikono LCD in odprlo se bo okno, kot ga vidimo na sliki: Okno LCD in LED simulatorja Simulator bo stanje na LEDicah izpisoval tako, da logična 1 vklopi LEDico. Ker vemo, da to ne ustreza realnim mikrokontrolerjem je spodaj levo okno, kjer odkljukamo Invert in s tem preprečimo to obnašanje simulatorja. 10 Bascom AVR začetni tečaj, marec 2008

11 Programiranje AVR mikrokontrolerjev Jure Mikeln Opis MiniPin razvojnega orodja in programiranje 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 4x8 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. Fotografija MiniPin z označenimi elementi

12 MiniPin napajamo z enosmerno ali izmenično napetostjo od 9-15V. V vezje vtaknemo mikrokontroler ATTiny PU na mesto IC6, na mesto U1 vtaknemo 12 MHz kvarc ali resonator, stikalo S3 preklopimo v položaj AVR in že smo pripravljeni, da povežemo MiniPin s programatorjem in sprogramiramo mikrokontroler. Za programator lahko uporabimo Proggy programator ali pa si sami naredimo programator po načrtu, ki ga vidite na sliki 4. Shema Sample programatorja Tako Proggy kot Sample programator povežemo na MiniPin na konektor K6. V Bascomu je potrebno nastaviti (Options/Programmer) izbrani programator, kot vidite na sliki Bascom AVR začetni tečaj, marec 2008

13 Nastavitev programatorja V nastavitvah LPT-address morate nastaviti ustrezen naslov, ki ga najdete v BIOS nastavitvah. V koliko boste uporabljali Proggy svetujem, da najprej naložite program AVR Studio, kjer boste nastavili Tools/ProgramAVR/Connect in nastavili program, kot kaže spodnja slika:

14 Če se bo Proggy uspešno povezal s PC-jem, se bo odprlo naslednje okno: Proggy je pripravljen za programiranje v AVR Studiu Zdaj smo pa že res pri koncu nastavitev strojne in programske opreme. Program, ki smo ga napisali v Bascom-u prevedemo (Compile ali tipka F7) in v primeru, da uporabljamo Sample programator kliknemo ikono Program Chip ali pritisnemo F4. Če pa uporabljamo Proggy v AVR Studiu pritisnemo tipko... in izberemo datoteko s končnico HEX.+ Podobno dosežemo, če v Bascomu namesto Sample programatorja nastavimo STK500 in v oknu SKT500EXE izberemo, kje se nahaja exe datoteka za STK500 program. Pred tem še odstranimo kljukice pri Auto Program in Auto Verify ter postavimo kljukico na Upload Code and Data. 14 Bascom AVR začetni tečaj, marec 2008

15 Ne glede na uporabljeni programator nastavimo mikrokontroler, ki ga programiramo (ATTiny2313) in kliknemo Program. S tem smo sprogramirali mikrokontroler! Preden gremo na samo programiranje in Bascom se še malce ustavimo na t.i. Fuse in Lock bitih, ki znajo pri začetnikih povzročiti kar nekaj težav. Fuse in Lock biti so posebni recimo temu konfiguracijski biti, ki (na žalost) niso nastavljivi iz programske kode pač pa jih nastavljamo ob postopku programiranja. Lock biti Lock biti so kar že samo ime pove, biti, ki zaklenejo mikrokontroler. Zakleniti mikrokontroler pomeni, da ga ne morete prebrati, programirati oziroma niti programirati niti verificirati. S tem lahko vsebino kontrolerja (program) zaščitimo pred kopiranjem. V enem delu Lock bitov so tudi biti, s katerimi določamo t.i Bootloader s katerim se bomo ukvarjali v nadaljevalnem tečaju. Na kratko, bootloader omogoči, da posodobimo program v mikrokontrolerju kar preko UART vmesnika, ne da bi potrebovali programator. Fuse biti Fuse biti pa nastavljajo sledeče: WatchDog timer (Vklop/Izklop), Bootloader Flash prostor, Brown out detektor (Vklop/Izklop) ter izbor oscilatorja mikrokontrolerja, ki je lahko zunanji, notranji RC ali zunanji kvarčni z različnimi frekvencami.

16 Priklop periferije na mikrokontroler Jure Mikeln, Gregor Maček Vezava tipke Tipko lahko vežemo v t.i. pull-up vezavi (ko je tipka pritisnjena, je sklenjena proti masi, sicer pa preko 10k»pull up«upora proti VCC vhod ima pri pritisnjeni tipki vrednost 0) ali pull-down vezavi (ko je tipka pritisnjena, je sklenjena proti VCC, sicer pa preko 10k»pull down«upora proti masi vhod ima pri pritisnjeni tipki vrednost 1). Omenjeni upori so namenjeni definiranju stanja spuščene tipke, saj se sicer lahko zgodi, da vhod»zaplava«in menja stanja brez, da bi bilo karkoli pritisnjeno. Na zgornji sliki je narisana pull up vezava (R1 na sliki je na primer tak pull up upor). 16 Bascom AVR začetni tečaj, marec 2008

17 Vezava LED diode Tudi LED diodo lahko vežemo proti masi ali proti VCC (kot na zgornji sliki); v slednjem slučaju bo LED prižgana, ko bo izhod na logični 0, ugasnjena pa, ko bo izhod na logični 1. Če pa vežemo LED med izhod in maso, pa je LED prižgana, ko je izhod na logični 1, ugasnjena pa, ko je izhod na logični 0. AVR družina mikrokontrolerjev je sposobna na izhodu direktno poganjati največ 20mA toka, ne glede na to ali vežemo breme proti masi ali proti VCC. Kontrolerji prejšnje, 8051 družine, pa so lahko takšen tok zagotovili le pri vezavi bremena proti VCC, ne pa tudi proti masi. V vsakem primeru moramo zaporedno z LED diodo vezati upor, s katerim omejimo tok skozi diodo, saj lahko v nasprotnem primeru uničimo kontroler in/ali LED diodo.

18 Vezava PFET in NFET tranzistorja Mikrokontroler ima prešibke izhode za krmiljenje močnejših porabnikov - Rt (npr. relejev, žarnic itd.), zato moramo njihov izhod ojačiti. To ponavadi naredimo s tranzistorjem, v zadnjem času so popularni FET tranzistorji, zato bomo prikazali vezavo FET-ov. Pri programiranju bodimo pozorni: NFET vklapljamo z logično 1, PFET pa z logično Bascom AVR začetni tečaj, marec 2008

19 Vezava LDC prikazovalnika V tem seminarju bomo predstavili uporabo 2x16 LCD prikazovalnika, ki je nekako najbolj razširjen. Vsi tekstovni zasloni, ne glede na velikost, se priklapljajo enako, potrebno pa je preveriti v dokumentaciji posameznega zaslona, kje imajo pine za krmiljenje, saj razpored ni povsem standarden (predvsem kje je pin 1, pini v nadaljevanju so navadno po standardnem razporedu). Če ima zaslon za priklop 16 pinov, sta pina 15 in 16 navadno uporabljena za priklop osvetlitve zaslona. Navadno tekstovni LCD uporabljamo v t.i. 4 bitnem načinu, kjer imamo med kontrolerjem in zaslonom 6 linij: 4 data linije, enable in reset. Obstaja pa tudi 8 bitni način naslavljanja, kjer imamo 8 data linij ter enable in reset (torej skupno 10 linij).

20 Krmiljenje DC motorja DC motor lahko krmilimo zgolj preko tranzistorja (vklop/izklop), če pa želimo nadzorovati tudi smer vrtenja pa ga najlažje krmilimo preko namenskega vezja L272M. Omenjeno integrirno vezje omogoča krmiljenje izhoda z maksimalnim tokom 1A, pred preobremenitvijo pa je zaščiten tudi s posebnim vezjem, ki izklopi izhod, če se vezje pregreje. 20 Bascom AVR začetni tečaj, marec 2008

21 Uporaba izhodov Gregor Maček Mikrokontrolerji imajo različno število vhodov in izhodov. Navadno je v portu, ki ga označujemo s črko, 8 vhodov/izhodov (lahko tudi manj). Tako imamo, na primer, v portu A pine 0 do 7, ki jih potemtakem deklariramo kot PA.0, PA.1... PA.7. Posamezen pin ima lahko zgolj funkcijo logičnega vhoda ali izhoda (0/1), lahko pa taisti pin omogoča še druge funkcije. Dodatne funkcije pinov vidimo v datasheetu posameznega mikroprocesorja tu si kot primer oglejmo pinout Mega128: Za informacije o dodatnih funkcijah posameznih pinov imamo v datasheetu vsak register posebej detajlno opisan. Ko pišemo program, moramo najprej konfigurirati posamezne porte/pine tako, da prevajalnik ve, ali bomo posamezni pin/port uporabili kot vhod ali kot izhod. Izhode konfiguriramo z ukazom CONFIG: Config Porta = Output Config Portb.0 = Output Config Portb.1 = Output 'Lahko nastavimo cel register kot output 'Lahko pa tudi zgolj posamezni pin iz registra

22 Z ukazom SET postavimo izhod na 1 (izhod na logični 1; +5V), z RESET pa na 0 (izhod na logični 0 - GND). Naredimo enostavno zanko, kjer bo LED dioda na portu A.0 utripala: Do Set Porta.0 Wait 1 Reset Porta.0 Wait 1 Loop 'Začetek zanke 'Vklopim LED 'Počakam sekundo (ukaz wait; lahko tudi waitms ali waitus, max. vrednost pri posameznem ukazu je 255!) 'Izklopim LED 'Počakam sekundo 'Se vrnem na začetek zanke Direktno naslavljanje V določenih primerih je nastavljanje porta po posameznih pinih zamudno. In tudi nepotrebno... Uporabimo lahko namreč ukaz za direktno naslavljanje &B: Do Porta = &B Wait 1 Porta = &B Wait 1 Loop 'Biti od 0-7 v portu A so izklopljeni 'Biti od 0-7 v portu A so vklopljeni Sedaj lahko naredimo enostavni light-show s poljubnim zaporedjem utripanja in poljubno hitrostjo, na primer: Do Porta = &B Waitms 250 'Maksimalna vrednost za wait/waitms-/waitus je 255 Waitms 250 'zato za čas 500ms uporabimo 2 ukaza waitms 250 Porta = &B Waitms 250 Waitms 250 Loop 22 Bascom AVR začetni tečaj, marec 2008

23 Uporaba vhodov Gregor Maček Najprej moramo v programu konfigurirati posamezne porte/pine tako, da prevajalnik ve, ali bomo posamezni pin/port uporabili kot vhod ali kot izhod. Vhode tako kot izhode konfiguriramo z ukazom CONFIG: Config Porta = Input Config Portb.0 = Input 'Lahko nastavimo cel port kot output 'Lahko pa tudi zgolj posamezni pin iz porta Da bomo lahko gledali spremembe, potrebujemo tudi kakšen izhod... Config Portc = Output Branje vhoda z ukazom IF-Then Najenostavneje beremo stanje vhoda z IF stavkom. Naredimo program, ki prižge LED na pinu C.0, če pritisnemo tipko na pinu B.0 Do If Pinb.0 = 1 Then 'Pogojni stavek: če je pin B.0 na stanju 1 (+5V - tipka stisnjena), potem... Set Portc.0 'prižgem LED diodo na C.0... Else '... sicer... Reset Portc.0 'ugasnem LED diodo na C.0 End If 'Konec pogojnega stavka Loop Slabost omenjene rešitve je, da tipka lahko pri pritisku/spustu odskakuje in v aplikacijah, kjer štejemo število pritiskov itd. lahko dobimo napačen rezultat. Problem lahko rešimo tako, da po prvem prebiranju tipke počakamo nekaj časa in nato še enkrat preverimo stanje tipke in šele če obe stanji sovpadata, izvršimo dejanje. Do If Pinb.0 = 1 Then Waitms 50 If Pinb.0 = 1 Then 'malo počakamo 'ponovno preverimo stanje in če je tipka še vedno pritisnjena 'naredimo željeno operacijo End If End If Loop

24 Branje vhoda z ukazom DEBOUNCE Bascom pa omogoča taisto zadevo še enostavneje, s posebnim ukazom "debounce" ta ukaz ob pritisku tipke samodejno počaka prednastavljeno časovno periodo, nato stanje tipke preveri še enkrat in vkolikor ugotovi, da je tipka dejansko pritisnjena, skoči na nastavljeni kazalec oz. v podprogram (če je dodan še SUB parameter): Config portb.0 = input Config portc.0 = output Config Debounce = 40 'Port b.0 konfiguriramo kot vhod 'Port c.0 konfiguriramo kot izhod 'Najprej konfiguriramo čas, po katerem je pritisk tipke veljeven; v tem primeru 40ms Main: 'Kazalec glavne zanke Do 'Zanka za preverjanje pritisnjene tipke Debounce Pinb.0, 1, Program 'Sintaksa: pin, stanje za aktiviranje, 'podprogram, kamor naj skočim ob 'izvršenem pogoju Loop Program: 'Podprogram, kamor skočim ob pritisku na tipko Set Portc.0 'Prižgem in ugasnem LED na C.0 Wait 1 Reset Portc.0 Goto Main 'Vrnem se nazaj v glavno zanko V programih se GOTO ukaza skušamo izogibati, saj potek programa z več GOTO ukazi postane zelo nepregleden; rajši uporabimo skok podprogram, iz katerega se z ukazom RETURN vrnemo tja, s kjer smo skočili: Config portb.0 = input Config portc.0 = output Config Debounce = 40 'Port b.0 konfiguriramo kot vhod 'Port c.0 konfiguriramo kot izhod 'Najprej konfiguriramo čas, po katerem je pritisk tipke veljeven; v tem primeru 40ms Do 'Zanka za preverjanje pritisnjene tipke Debounce Pinb.0, 1, Program, Sub Loop Program: 'Podprogram, kamor skočim ob pritisku na tipko Set Portc.0 'Prižgem in ugasnem LED na C.0 Wait 1 Reset Portc.0 Return 'Vrnem se nazaj v glavno zanko 24 Bascom AVR začetni tečaj, marec 2008

25 Uporaba tekstovnega LCD zaslona Gregor Maček Konfiguracija zaslona Zaslon moramo najprej konfigurirati - Bascomu povedati, katere pine uporabljati. To storimo v Options - Compiler LCD. Navadno moramo nastaviti le tip - velikost LCDja ter katere priključke uporabljamo. Ostale nastavitve pustimo takšne, kot so. V samem začetku programa zaslon "pobrišemo" z ukazom CLS in izklopimo kurzor (če ga ne rabimo): Cls Cursor Off 'Pobrišemo zaslon 'Izklopimo prikaz kurzorja Sedaj lahko na zaslon izpišemo enostaven tekst. To storimo z ukazom LCD Izpis na zaslon ukaz LCD Lcd "Testiranje" Če sedaj pošljemo še en tekst, se začne pisati tam, kjer se je pisanje prvega nehalo: Lcd "Nadaljujem" Tega navadno ne želimo. Zato lahko, če želimo izpisati nov zaslon, le-tega najprej pobrišemo in nato zapišemo Cls Lcd "Nadaljujem 2" Pozicioniranje teksta na zaslon ukaz LOCATE ali pa povemo, na kateri poziciji zaslona želimo pisati z ukazom LOCATE Y, X. Če želimo npr. izpisati tekst "test" na 3. polju v 2. vrstici, to storimo tako: Cls Locate 2, 3 Lcd "test" Lahko uporabljamo tudi ukaze LOWERLINE, THIRDLINE in FOURTHLINE, s katerimi se pomaknemo v izbrano vrstico - npr.

26 Cls Lcd "1. vrstica" Lowerline Lcd "2. vrstica" Seveda lahko uporabimo prej omenjene ukaze glede na velikost LCD zaslona, ki ga uporabljamo (ne moremo npr. uporabljati ukaza THIRDLINE pri dvovrstičnem zaslonu). V samih programih se nam dostikrat pojavi problem, ker se določen tekst na zaslonu ne izpiše. Najpogosteje je vzrok temu program, ki teče v zanki in v kateri imamo tudi ukaz CLS, ki zaslon izbriše. Ker zanka teče zelo hitro, izpisanega teksta ne vidimo, saj je prej izbrisan. Pri vsakem brisanju zaslona (CLS) zaslon tudi utripne, zato se ukaza CLS v zanki poskusimo čimbolj izogibati in raje tekste in spremenljivke zgolj prepisujmo (uporabimo tudi ukaz LOCATE). Sedaj smo prikazovali statično vsebino - v narekovajih. Pri prikazu spremenljivk je zadeva podobna, le da spremenljivko ne napišemo v "narekovaje" Dim A As Byte A = 0 Cls Do Incr A 'povečam A za 1 (isto kot bi napisal A = A + 1) Locate 1, 1 Lcd A Wait 1 Loop Until A = 30 Premik teksta po zaslonu v levo ali desno ukaz SHIFTLCD Z ukazoma SHIFTLCD lahko vsebino zaslona premikamo po zaslonu levo/desno A = 1 'spremenljivka za premikanje Cls Lcd Tekst na LCD For A = 1 To 10 Shiftlcd Left 'premikamo v levo... 'Shiftlcd Right '... ali desno... Wait 1 'vsako sekundo za 1 znak Next 26 Bascom AVR začetni tečaj, marec 2008

27 Kreiranje lastnih znakov V kolikor želimo kreirati kakšen poseben znak, ki ni v ASCII tabeli, to lahko storimo z Bascom orodjem LCD designer: Tools -> LCD Designer Še prej se postavimo v prazno vrstico programa, kjer bo nato vnešena koda za nov znak; najbolje, da je to v začetku programa (poleg konfiguracije zaslona). Odpre se nam okno, kjer lahko s klikanjem naredimo željen znak. Ko kliknemo OK, se nam v izbrano vrstico izpiše naslednja koda: (variira glede na narejeni karakter) Deflcdchar?,16,16,8,8,4,4,3,3' replace? with number (0-7) Vprašaj moramo zamenjati za številko od 0 do 7 (kreiramo lahko 8 svojih znakov), torej naredimo npr. Deflcdchar 1, 32, 7, 5, 7, 32, 32, 32, 32 'znak za stopinje Prikaz takšnega znaka v programu naredimo z ukazom LCD CHR(?), torej: Lcd Chr(1) Izpis v tekstu pač naredimo povsem navadno, kot izpis na LCD: Lcd "Temp je 12" : Lcd Chr(1) : Lcd " Celzija" Zgornji program izpiše: Temp je 12 Celzija Pri čemer smo znak za stopinje naredili sami. Vloga dvopičja je ista kot da bi pisali vsako postavko v novo vrstico, le pregledneje je tako. Inicializacija zaslona med delovanjem programa ukaz INITLCD Vkolikor naredimo aplikacijo, kjer LCD priklopimo zgolj občasno (npr. ko želimo preveriti določene parametre), nam le-ta pri»on-line«priključitvi ne bo deloval. Vzrok temu je to, da zaslon ni inicializiran, kar se zgodi ob zagonu programa (Bascom prevede kodo tako, da v začetek programa postavi tudi inicializacijo samega displaya tudi, če INITLCD ne uporabomo). Če pa v program vključimo omenjeno funkcijo, se zaslon inicializira tudi tekom delovanja programa in ga potemtakem lahko priključimo med delovanjem same aplikacije.

28 Komunikacija UART pošiljanje Gregor Maček Za komunikacijo s perifernimi napravami (GSM modem, GPS...) največkrat uporabljamo UART vmesnik. UART je kratica za universal asynchronous receiver/transmitter - torej univerzalni asinhroni prenos (pošiljanje/sprejem) podatkov. Več o samem standardu lahko zveste na Internetu. RS-232 protokol S pretvorniki (npr. MAX232, MAX485) lahko napetosti prilagodimo aplikaciji, ki jo delamo. Za kratke razdalje lahko uporabljamo kar direkten priklop UART <-> UART, vkolikor pa imamo vmes daljše kable ali v okolju motnje, uporabimo napetostni pretvornik. Kot primer uporabimo MAX232, s katerim dosežemo nivoje, potrebne za RS232 komunikacijo (Reccomended Standard 232), ki navadno uporablja +/-22V napetostne nivoje. Ker prenašamo višje napetosti je tudi vpliv motenj na samo komunikacijo manjši. RS232 je tudi vmesnik, ki ga imamo največkrat na razvojni plošči Bascom AVR začetni tečaj, marec 2008

29 AVR mikroprocesorji imajo navadno 1 UART vmesnik (TX/RX), določeni večji modeli pa tudi po več (2 ali celo 4). Mi se bomo tokrat omejili le na en vmesnik, prav nič bistveno bolj pa ni komplicirana uporaba dveh ali več. Komunikacijske nastavitve v Bascomu V Bascomu moramo najprej nastaviti parametre komunikacije. To storimo v Options -> Compiler -> Communication.Tu izberemo hitrost, s katero želimo komunicirati (baudrate) in nastavimo frekvenco procesorja. Vkolikor uporabljamo interni oscilator (1/4/8 MHz) nastavimo to vrednost, če pa uporabljamo kristal, pa nastavimo frekvenco kristala. Če se malo igramo z nastavitvami, vidimo da je faktor napake najmanjši (oz. ga sploh ni) pri frekvenci kristala 11,059MHz. Vkolikor uporabljamo drugo frekvenco, je vedno neka napaka (ki se seveda veča z višanjem hitrosti prenosa), a vrednosti pod 5% so največkrat sprejemljive. Vse omenjene nastavitve lahko vpišemo tudi direktno v program in tako vpisane imajo prednost pred nastavitvami, izbranimi v meniju. Ravno tako lahko v sam program vključimo ostale informacije (o procesorju, pinih LCDja itd.) Primer: $regfile = "m16def.dat" $crystal = $baud = $hwstack = 32 $swstack = 8 $framesize = 24 Torej, ko smo opravili nastavitve komunikacije, poskusimo nekaj poslati na UART oziroma RS-232 izhod (na razvojni plošči je že MAX232, ki poskrbi za pretvorbo napetostnih nivojev). To storimo z enostavnim ukazom PRINT. Pošiljanje podatkov PRINT Da bomo imeli kje spremljati komunikacijo, bomo RS232 vmesnik na razvojni plošči morali povezati z RS232 vmesnikom na računalniku. Kabel mora biti t.i. crossover TX pin (izhod) mora biti povezan z RX pinom(vhod) računalnika in obratno. Potem lahko komuniciramo z uporabo HyperTerminala (del Windows XP) oz. uporabimo naprednejši program kot je npr. Brayev terminal. Slednji je priporočljiv tudi zato, ker HyperTerminal ne pokaže vsega, kar se dogaja na ravni protokola (CR, LF...). Do Print "Posiljam podatke preko RS232 vmesnika" Wait 3 Loop Zgornji program vsake 3 sekunde pošlje omenjeno sporočilo na RS232 port in v kolikor imamo računalnik pravilno nastavljen (izbran pravilni port in hitrost) ter pravilno narejeno povezavo se le to prikaže v oknu programa.

30 Prazno vrstico enostavno kreiramo s praznim ukazom PRINT, torej: Do Print "test" Print Print "test2" Wait 3 Loop 'prazna vrstica Če želimo več vrednosti poslati v eni vrstici (brez CR), kot ločilo uporabimo podpičje: Do Print "test " ; "naprej " ; "v eni " ; "vrstici" Wait 3 Loop Isto kot pri izpisu na LCD za fiksne vrednosti uporabimo narekovaje, pri pošiljanju spremenljivk pa lete izpustimo. Pošiljanje podatkov v binarni in šesdesetiški obliki Če želimo izpisati šesdesetiško ali binarno vrednost spremenljivke, to storimo z ukazoma PRINT HEX oz. PRINT BIN: Dim A As Byte A = 20 Do Print Bin(A) Wait 3 Print Hex(A) Wait 3 Loop 'pošljem A kot binarno vrednost 'pošljem A kot šesdesetiško vrednost 30 Bascom AVR začetni tečaj, marec 2008

31 Komunikacija UART sprejemanje Gregor Maček Sprejem podatkov z ukazoma INKEY, WAITKEY Podatke na UART lahko sprejemamo na različne načine, odvisno seveda od tega, za kakšne podatke gre. Dim A As Byte Do A = Inkey() 'čakam na ASCII vrednost na UARTu If A > 0 Then 'če smo nekaj dobili Print "Dobili smo " ; A ; " (ASCII vrednost)" ' to izpišemo Print "Dejansko pa je to " ; Chr(a) 'in še dejanski znak! End If Loop Podoben ukaz kot INKEY je tudi WAITKEY, s to razliko, da se v primeru uporabe WAITKEY program na tem mestu ustavi in stoji, dokler nekaj ne prejmemo. Sprejem podatkov z ukazom INPUT Tega ukaza se največkrat poslužimo, če želimo narediti komunikacijo med Hyperterminalom in našo aplikacijo z namenom spreminjanja parametrov sistema itd. Program Dim A As Word Dim C As Integer Dim S As String * 15 Do Input "Vpisite spremenljivko A: ", A Print "Spremenljivka A je: " ; A Wait 3 Input "Vpisite tekst S", S Print "Napisali ste tekst: " ; S Wait 3 Loop

32 Multipleksiranje 7 segmentni LED Vilko Sustič Svetleča dioda sveti, če teče skozi njo tok v prevodni smeri. Običajno tok sklenemo in prekinjamo na strani katode, tako da potencial katode damo na 0V, med tem ko je anoda vezana na stalni vir energije +5V. POZOR, na slikah ni narisan upor, ki se veže v serijo z diodami, za omejitev toka, kajti 5V je previsoka napetost za diodo in bi jo prežgala. Sheme v tem dokumentu obravnavajte samo za razlago delovanja. Tok pa lahko prekinjamo tudi na strani anode, ali na obeh straneh Na strani anode si pomagamo s PNP tranzistorjem, ki ga odpremo z tokom skozi bazo, ki ga ustvarimo tako, da damo drugo stran upora na nizek potencial 0V. Da bo dioda svetila morata torej biti oba izhoda iz mikroprocesorja na nizkem potencialu. Ta koncept uporabimo, kadar želimo upravljati z velikim številom diod: 32 Bascom AVR začetni tečaj, marec 2008

33 Uporabili smo = 12 izhodov mikroprocesorja, in upravljamo z 8 x 4 = 32 diodami. Lahko prižgemo katerokoli diodo, če le pravilno vzbujamo izhode s katerimi krmilimo potenciale na diodah. Problem postane, kadar bi radi, da bi svetilo več diod hkrati. To se da samo takrat, če so diode, ki naj bi hkrati svetile bodisi v isti vrstici, bodisi v isti koloni. Oglejmo si vezje Minipin plošče. Na njej so štirje 7-segmentni prikazovalniki, od katerih ima vsak 8 diod in vse imajo skupno anodo, prav tako, kot ima 8 diod vezano skupaj anode na zgornji sliki. Katode so speljane ven, vsaka za en segment in ena za diodo, ki predstavlja decimalno piko. Vsaka dioda ima tudi svoje ime, pravzaprav črko:. Iz sheme lahko vidimo, kam so vezane katode posameznih diod in naredimo sledečo tabelo: Dioda Port A Portb.7 x x x x x x x x B Portb.1 x x x x x x x C Portb.5 x x x x x x x x D Portb.4 x x x x x x x

34 E Portb.2 x x x x x F Portb.3 x x x x x x x G Portb.0 x x x x x x x Dp Portb.6 Nič pa ne bo narobe, če se o tem prepričamo. Naredimo si program, ki bo dajal na 0V ciklično vsak portpin posebej, in istočasno bomo odprli tok skozi enega od tranzistorjev: Reset Portd.7 Do For I = 0 To 7 Portb = 255 Portb.i = 0 Wait 3 Next Loop Seveda moramo jumperje na Minipin plošči tudi pravilno postaviti, sicer ne bo nič videti. In potem poženemo program vaja2.bas: Config Portb = Output ' dodamo/vklopimo 7seg displey na PD.7 Config Portd.7 = Output Reset Portd.7 Do Dim I As Byte For I = 0 To 7 Portb = 255 Portb.i = 0 Wait 3 Next Loop 'Zgraditi moramo tabelo za prevajanje - lookup tabelo. 'Kako? Obrezložim na primeru: 'Želimo prikazati recimo številko 1 'Da bo vidna številka ena, morata goreti diodi, ki odgovarjata pinom 1 in 5 'Odgovarjajoča pina morata biti na 0 ostali na 1 torej: 'Torej če so pini ' ' ali heksa D D &HDD ' 'Tako dobljene konstante, ki izvirajo iz samega vezja sestavim v tabelo. 'Zaporedje se mora začeti z kombinacijo, ki odgovarja ničli, in nato po ena 'naprej: ' 'Minipin7seg: 34 Bascom AVR začetni tečaj, marec 2008

35 'Data &H41, &HDD, &H64, &H4C, &HD8, &H4A, &H42, &H5D 8 9 A B C D E F 'Data &H40, &H58, &H50, &HC2, &H63, &HC4, &H62, &H72 To, kar vidimo, mora odgovarjati načrtu. Vendar ne odgovarja, ker sem pri prenašanju načrta v tabelo namerno naredil napako, prosim popravite jo. Če vežete v vašem projektu diode drugače, boste pač tudi krmilili malo drugače. In sedaj moramo doseči, da na 7-segmentnem prikazovalniku ne bo svetila samo ena dioda, temveč, da bodo svetile vse tiste diode, ki bodo skupaj optično pričarale vsebino, ki jo želimo prikazati. Če želimo prikazati enojko, morata svetiti diodi B in C, če hočemo prikazati trojko, potem morajo svetiti diode A,F,G,E,D. in tako naprej za vse znake, ki jih želimo prikazati. Kako to naredimo? Za vsako vrednost spremenljivke, ki jo želimo prikazati, se pravi od 0 do 9, no morda do 15, naredimo bajt, ki ima odgovarjajoče bite na 0, ostale bite na 1. Razložim na primeru enice: Pri enici naj svetita samo diodi B in C, ki sta vezani na Portb.1 in Portb.5 Portb ima osem bitov ki so numerirani tako : in vsebina le teh za enico bodi: kar heksadecimalno zapišemo kot D D Tako moramo priti do vsej 10 (ali 15) konstant in jih postavimo v vrsto: Minipin7seg: ' Data &H41, &HDD, &H64, &H4C, &HD8, &H4A, &H42, &H5D ' 8 9 A B C D E F Data &H40, &H58, &H50, &HC2, &H63, &HC4, &H62, &H72 In potem z lookup ukazom potegnemo iz te vrste tistega, ki odgovarja spremenljivki: Portb = Lookup(i, Minipin7seg) Preverimo to s programom vaja3.bas: Dim I As Byte Dim J As Byte Dim K As Byte Dim L As Byte Dim S As String * 16 Config Portb = Output

36 'dodamo 7seg displey na PD.7 Config Portd.7 = Output Reset Portd.7 Do For I = 0 To 15 Portb = Lookup(i, Minipin7seg) ' lookup ukaz potegne iz tabele tisto vrednost, ki odgovarja po ' zaporedju ' vrednosti argumenta lookup ukaza, torej spremenljivki i Wait 2 Next Loop Minipin7seg: ' Data &H41, &HDD, &H64, &H4C, &HD8, &H40, &H42, &H5D ' 8 9 A B C D E F Data &H40, &H58, &H50, &HC2, &H63, &HC4, &H62, &H72 S programom preverimo, ali smo tabelo pravilno sestavili. V tabeli je namerna napaka, in prosim popravite jo! Potem, ko smo popravili tabelo, gremo naprej, želimo prikazati kaj več, kot samo eno mesto! Na vsa 4 mesta prikazovalnika bomo dali neko vsebino: Vaja4.bas: Dim I As Byte Dim J As Byte Dim K As Byte Dim L As Byte Dim S As String * 16 Config Portb = Output 'dodamo 7seg displey na PD.7 Config Portd = Output Do For I = 0 To 3 Portb = Lookup(i, Minipin7seg) Portd = Bascom AVR začetni tečaj, marec 2008

37 If I = 0 Then Reset Portd.4 If I = 1 Then Reset Portd.5 If I = 2 Then Reset Portd.7 If I = 3 Then Reset Portd.3 Wait 1 'Eksperimentiraj Z Različnimi Zakasnitvami Waitms 5 Next Loop Minipin7seg: ' Data &H41, &HDD, &H64, &H4C, &HD8, &H4A, &H42, &H5D ' 8 9 A B C D E F Data &H40, &H58, &H50, &HC2, &H63, &HC4, &H62, &H72 Sedaj se prikazovalniki prikazujejo eden po eden po vrsti. Če zakasnitveni čas primerno zmanjšamo, bo oko videlo, kot da delajo vsi hkrati, in to vztrajnost očesa uporabimo pri kot rečemo mulitpleksiranemu krmiljenju 7-segmentnih prikazovalnikov. Vendar prikazati moramo neko vsebino! Prikažimo vsebino spremenljivke I! ' V zanki iz spremenljivke i napolnimo spremenljivke tis, sto, des in eni ' in le te prikažemo: Eni = I Mod 10 Des = I Mod 100 Des = Des / 10 Sto = I Mod 1000 Sto = Sto / 100 Tis = I / 1000 For K = 0 To 3 Portb = Lookup(i, Minipin7seg) Portd = 255 If K = 0 Then ' vsak displej posebej vklopimo Reset Portd.4 ' in za vsako mesto vzamemo svojo vrednost za prikaz: Portb = Lookup(tis, Minipin7seg) End If If K = 1 Then Reset Portd.5 Portb = Lookup(sto, Minipin7seg) End If If K = 2 Then Reset Portd.7 Portb = Lookup(des, Minipin7seg) End If If K = 3 Then Reset Portd.3

38 Portb = Lookup(eni, Minipin7seg) End If 'Wait 2 Waitms 5 Next experimentiraj z različnimi zakasnitvami In dodamo še preprosto spreminjanje vrednosti spremenljivke I. Če pritisnemo tipko, se vrednost poveča za 1: Tipka1 Alias Pind.0 Config Pind.0 = Input Debounce Tipka1, 0, Dodaj Goto Preskok2 Dodaj: Incr I Preskok2: Opazimo, da s pritiskom na tipko malo zmotimo prikazovanje, svetloba prikazovalnikov utripne. Se da to popraviti? Izboljšati? Odgovor je seveda ja. A v ta namen si moramo pomagati z časovno prekinitvijo, timer interruptom. Mikroprocesor ima napravo, časovnik ali angleško timer. Le ta sicer ne meri časa, temeč utripe kristala oziroma oscilatorja, ki poganja mikroprocesor, kar je pravzaprav nekaj podobnega. 38 Bascom AVR začetni tečaj, marec 2008

39 Zaenkrat se ne bomo spuščali v veliko teorijo o tem, temveč si bomo pomagali s programom ki ga je prijazno dal brezplačno na voljo gospod Ian Dobson. V okno ki izgleda tako: Vtipkamo frekvenco kristala ali oscilatorja in želeni čas prekinitve in že nam ponudi bascom avr kodo, ki jo iščemo:

40 To kodo enostavno prenesemo v naš program. Seveda pa moramo sami napisati v časovno prekinitveni podprogram, kaj naj naredi. Naš prekinitveni podprogram naj prikaže eno dekado, in se vrne, drugič drugo in tako naprej. ' PREKINITVENI PODPROGRAM Vaja 6 Timer0_isr: Load Timer0, Timer0reload ' V prekinitveni rutini vsakokrat prikažemo eno od 4 številk ' in to neodvisno od dela glavnega programa, zato ni utripanja, kadar ' glavni program dela kaj drugega Dim Tis As Word 'Tisočice Dim Sto As Word 'Stotice Dim Des As Word 'Desetice Dim Eni As Word 'Enice 'Iz spremenljivke i napolnimo spremenljivke tis, sto, des in eni ' in le te prikažemo: Eni = I Mod 10 Des = I Mod 100 Des = Des / 10 Sto = I Mod 1000 Sto = Sto / 100 Tis = I / 1000 Incr K If K > 3 Then K = 0 Portb = Lookup(i, Minipin7seg) Portd = 255 If K = 0 Then ' vsak displej posebej vklopimo Reset Portd.4 ' in za vsak displej vzamemo svojo vrednost za prikaz Portb = Lookup(tis, Minipin7seg) End If If K = 1 Then Reset Portd.5 Portb = Lookup(sto, Minipin7seg) End If If K = 2 Then Reset Portd.7 Portb = Lookup(des, Minipin7seg) End If If K = 3 Then Reset Portd.3 Portb = Lookup(eni, Minipin7seg) End If Return Glavni program sedaj se ne ukvarja več z prikazovanjem na 7 segmentne prikazovalnike, temveč se ukvarja za bistvenimi zadevami, rezulat da v spremenljivko I, prikazovanje le te pa opravi podprogram. Opazimo sedaj, da pritisk na tipko ne zaustavlja prikazovanja in svetloba ob pritisku na tipko ne utripne. 40 Bascom AVR začetni tečaj, marec 2008

41 Prekinitve (Interrupti) Vilko Sustič Mikroprocesorji omogočajo prekinitve delovanja glavnega programa. Zakaj? Včasih je nujno potrebno narediti kako malenkost takoj, in ne čakati, da bo mikroprocesor po programu zaključil nekaj, za kar potrebuje še nekaj časa, kajti takrat zna biti prepozno. Zato je prekinitev vedno vezana na mali podprogram, v katerem smo programirali, kaj je potrebno tako nujno narediti. Prekinitev je povzročena lahko na različne načine, lahko je časovna prekinitev, ki nastopi, ko mine določen čas, lahko je zunanja prekinitev, ki nastopi ob spremembi nivoja napetosti na kakem vhodu mikroprocesorja (port-pinu), lahko se proži, ko UART zazna in prebere nek bajt, ki pride po komunikacijski liniji v mikroprocesorski medspomin buffer. V splošnem velja, da se prekinitev izvede tako, da se najprej spravi vse bistvene podatke o dogajanju v mikroprocesorju zaradi delovanja glavnega programa na odložišče (stack) in se šele potem požene prekinitveni podprogram. Ko prekinitveni program zaključi svoje delo z ukazom Return, se potem iz odložišča spet napolnijo vsi registri mikroprocesorja in glavni program nadaljuje svoje delo, kot da se ni nič zgodilo. No, je pa preteklo nekaj časa, in že samo to dejstvo lahko slabo vpliva na delovanje glavnega program, če recimo glavni program v tem času ni opazil kake bistvene spremembe, ki bi jo bil moral upoštevati. Zato velja načelo: prekinitveni podprogram bodi v načelu čim bolj kratek, naj odvzame čim manj časa glavnemu programu. Prekinitev bomo uporabili tudi v kasnejšem programu za prikazovanje na 7-segmentnem prikazovalniku. Pa nadaljujmo kar z časovno prekinitvijo ali timer-interruptom. Časovnik ni pravzaprav nič drugega kot števec impulzov, ki prihajajo na vhod števca. Le ti so običajno kar impulzi istega oscilatorja, ki poganja mikroprocesor, ali pa impulzi, ki prihajajo iz zunanjega vira preko vhodov T0 ali T1 (PB0 ali PB1) To smo že uporabili pri prejšnjem poglavju o multipleksiranju. Vaja1.bas program v novi varianti, ki prikazuje vsebino števca sekund na 7-segmentni prikazovalnik in vsak pritisk na tipko zaustavi ali požene štetje. Ker merimo sekunde z ukazom wait 1 tisti čas, ko je program v zanki, ki jo povzroči wait, ne zazna pritiska tipke.

42 Vaja2.bas pa odtipava tipko s pomočjo externega interrupta. Definiramo: Config Int0 = Falling On Int0 Int0_int Enable Int0 Sedaj ni problema z detektiranjem tipke, saj kadarkoli pritisnemo tipko, program takoj reagira. Toda še vedno je problem tako natančnega štetja, kot tudi zaustavljanja štetja v trenutku, ko velja wait 1. V vaja3.bas smo odpravili tudi to slabost. Da dokažemo, smo se odločili šteti kar stotinke sekunde in imamo sedaj neke vrste uro štoparico. Za štetje časa smo zadolžili kar prekinitveni podprogram, ki je dolžan prikazovati številke na 7-segmentni prikazovalnik. Glavni program sedaj ne dela drugega, kot da popravi šteto vrednost. In sedaj ga lahko obremenimo še z drugimi nalogami, ki ne bodo zaustavljane z raznimi wait ukazi. V programu vaja4.bas smo iz te ure naredili merilnik odzivnega časa. Ko je števec na 0, tedaj gremo v čakanje za neznano število sekund. To število dobimo z ukazom J = Rnd(17) Funkcija Rnd nam da slučajnostno število nekje med 0 in v funkciji omenjeno zgornjo mejo. Ko preteče ta slučajnostni čas, se meritev začne, kar vidi testiranec tako, da začne teči prikaz na prikazovalniku. Sedaj mora čim hitreje pritisniti tipko in s tem ustaviti štetje, in odmerjeni čas si potem lahko na prikazovalniku ogleda. 42 Bascom AVR začetni tečaj, marec 2008

43 1-wire protokol in termometer DS1820 Vilko Sustič Termometer spada v družino 1wire. To je Dallasov način povezovanja in napajanja elementov po eni sami žici. Ista žica lahko služi za napajanje, kot tudi za komunikacijo. Ko ne komuniciramo, je žica na high, visoko, in napaja naprave, ki si energijo akumulirajo, tako da so napajane še tisti čas, ko signal na žici utripa v ritmu komunikacije. Naprave, ki jih je na žici lahko več, ločimo med seboj po unikatni identifikacijski oznaki, ki je vpisana v ROM naprave, termometra na primer in jo moramo poznati, če priključimo na žico več kot eno napravo. Časovni diagrami, ki se jih je potrebno držati, da je komunikacija uspešna, so dovolj zapleteni in določeni:

44 A za programerja, ki programira v Bascomu, za vse to poskrbi Bascom sam. Drugače je za programerja, ki programira v zbirniku, assemblerju. Programer v Bascomu mora samo toliko biti previden, da ne zavira izvajanje programa s kakimi prekinitvenimi podprogramu, kajti to lahko pokvari časovni potek komunikacije, kadar se ta izvaja v glavnem programu. Merjenje temperature gre tako: Najprej zahtevamo, da DS1820 izmeri temperaturo in si rezultat spravi v svoj pomnilnik. 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 'skip ROM velja za vse, ki ste na liniji 'merite temperaturo 'dajem vam čas za merjenje Ko DS1820 prejme tak ukaz, potrebuje energijo za delo, ki jo dobi tako, da mi držimo signal visok. Čas je lahko različen, a največ časa, ki ga za to potrebuje je 750msec. Ko preteče ta čas, damo ukaz: daj nam meritev. 1wreset 1wwrite &HCC 1wwrite &HBE 'reset 'skip ROM velja za vse, a je samo eden na liniji 'dajte podatke Podatek o temperaturi dobimo v polovičkah stopinje in ga daje v obliki dveh bajtov T = 1wread(2) 'Beremo podatke, prva dva bajta sta temperatura ' T je tipa integer 44 Bascom AVR začetni tečaj, marec 2008

45 1wreset T = T / 2 'Temperaturo dobimo v polovičkah stopinje Program DS je primer branja temperature, če je na liniji en sam termometer Program DS je izboljšan v toliko, da uporablja timer namesto wait za zagotavljanje potrebnega časa za konverzijo rezultata v DS1820 Program DS je izboljšan v toliko, da bere celotno vsebino, ki jo daje DS1820 in preverja dobljeno vsebino po CRC8 Vsebina, ki jo dobimo je: Če želimo imeti več termometrov, potem potrebujemo za vsak termometer njegovo identifikacijo. Dobimo jo tako, da vsak termometer posebej priključimo, poženemo program DS in informacijo, ki jo dobimo, prenesemo v program, ki bo zahteval temperaturo od konkretnega termometra. Program DS je primer branja temperature konkretnega termometra Program DS je primer branja temperature iz treh termometrov Beri tudi Bascp, AVR Help 'Using the 1 WIRE protocol'

46 Stack odložišče Vilko Sustič Morda beseda odložišče ni najboljša, toda smatram, da primerno pomensko odgovarja, kar bomo videli, ko si bomo ogledali stack - odložišče v funkciji. V splošnem se programerji ne ukvarjamo dosti s tem orodjem, uporablja ga mikrokrmilnik sam, (hardware stack) oziroma Bascom sam, (software stack). Nerodno je le to, da nam o tem dosti ne pove, in če v ta namen določen prostor v pomnilniku (RAM-u) ni dovolj velik, se dogode nepredvidljive zadeve in program običajno umre brez karkšnekoli diagnoze. Boste videli zakaj. Najbolj tipična uporaba odložišča je, kadar kličemo v glavnem programu podprogram, ali tudi v podprogramu še en podprogram. S klicem podprograma, glavni program, ali program višjega nivoja preda upravo podprogramu. To lahko naredi večkrat na različnih mestih. Podprogram v splošnem ne ve, od kod je bil klican. Ve pa, da je glavni program v samem klicu podprograma dal naslov predaje na odložišče. Ko podprogram reče Return, dejansko skoči na naslov, ki ga najde na odložišču. Odložišče ali stack si je potrebno predsavljati kot skladovnico, kjer vedno odlagamo na vrh skladovnice in vedno jemljemo iz vrha, bajt po bajt. Če se pri tem zaporedju zmotimo, dobimo, ko jemljemo podatke nazaj, napačne vsebine in program gre v maloro. Temu rečemo LIFO, kar je kratica za Last in first out, ali tisti ki zadnji pride, prvi odide. Bascom AVR razlikuje tri delovna področja, ki so razvrščema na sam vrh pomnilnika, hwstack, swstack in frame. 46 Bascom AVR začetni tečaj, marec 2008

47 Oglejmo si na programu stack-bas: $regfile = "m162def.dat" $hwstack = 64 $swstack = 64 $framesize = 64 Dim Reg14 As Iram Byte At 14 Overlay Dim I As Byte Dim J As Byte Dim K As Byte Dim L As Byte Dim M As Word Declare Sub B Declare Sub Sestej(prvi As Byte, Drugi As Byte, Tretji As Byte) Declare Function Vsota(first As Byte, Second As Byte) As Byte I = &H11 J = &H12 K = &H13 L = &H14 M = &H1567 Print "Smo v glavnem programu" Print Hex(i) ; " " ; Hex(j) ; " " ; Hex(k) ; " " Gosub A Print "Smo v glavnem programu" Print Hex(i) ; " " ; Hex(j) ; " " ; Hex(k) ; " " Call B Print "Smo v glavnem programu" Call Sestej(i, J, K) Print "Smo v glavnem programu" K = Vsota(i, J) Print "Smo v glavnem programu" End A: Push R14 Reg14 = I : Push R14 Reg14 = J : Push R14 Print "Smo v podprogramu A" I = &H21 : J = &H22 Print Hex(i) ; " " ; Hex(j) Gosub Aa Print "Smo v podprogramu A" Print Hex(i) Pop r14 : j = Reg14

48 Pop r14 : I = Reg14 Pop r14 Return Aa: Print "Smo v podprogramu Aa" Gosub Aaa Print "Smo v podprogramu Aa" Return Aaa: Print "Smo v podprogramu AAA" Gosub Aa Return B : Print "Smo v podprogramu B" Return Sub B Print "smo v subrutini B" End Sub Sub Sestej(prvi As Byte, Drugi As Byte, Tretji As Byte) Local Aha1 As Byte Aha1 = 2 Tretji = Prvi + Drugi End Sub Function Vsota(first As Byte, Second As Byte) As Byte Local Bebe1 As Byte Bebe1 = 7 Vsota = First + Second End Function End 48 Bascom AVR začetni tečaj, marec 2008

49 Ko ga prevedemo si oglejmo poročilo prevajalnika (compilerja). Vedno je priporočljivo, da si ogledamo poročilo (report) saj v njem dobimo zanimive podatke o našem programu. Poročilo o našem programu je skrajšano sledeče: Report : STACK Date : Time : 10:59:40 Compiler : BASCOM-AVR LIBRARY V Processor : M162 SRAM : 400 hex EEPROM : 200 hex ROMSIZE : 4000 hex ROMIMAGE : 3F6 hex -> Will fit into ROM ROMIMAGE : 1014 dec FLASH USED : 6 % BAUD : 9600 Baud XTAL : Hz BAUD error : 0.16% Stack start : 4FF hex Stack size : 40 hex S-Stacksize : 40 hex S-Stackstart : 4C0 hex Framesize : 40 hex Framestart : 47F hex Space left : 827 dec Variable Type Address(hex) Address(dec) HWSTACK Word 005D 93 SWSTACK Word 001C 28 FRAME Word ERR Bit REG14 000E 14 I Byte J Byte K Byte L Byte M Word Glede na to, da smo definirali: $regfile = "m162def.dat" $hwstack = 64 $swstack = 64 $framesize = 64 in ima mikrokrmilnik najvišji naslov H4FF smo s tem definirali

50 HWstack od &H4FF do &H4C0 SWstack od &H4BF do &H480 in Frame od &H47F do &H440 Delovanje program si bomo ogledali na simulatorju, ker tam lahko izvajamo instrukcijo po instrukcijo in si ogledujemo, kaj se dogaja v mikroprocesorju. Startamo simulator in vidimo nekaj takega: Simulator krmilimo tako, da nam pokaže naš program in zraven še vsebino pomnilnika-rama. Program poženemo počasi, korak po korak F8. Opazimo, da se nam pomnilnik pobriše na ničle šele, ko naredimo prvi korak v program. To je programirano v Bascomu. Ko ponovno pritisnemo na F8, vidimo, da se je izvedel ukaz I = &H11 in je vsebina naslov H100 postala H11. Pretaknimo na simulatorju okno tako, da nam pokaže IO vsebine. Izgledalo bo nekako tako: 50 Bascom AVR začetni tečaj, marec 2008

51 Rad bi vas opozoril na SPL in SPH. To sta dva bajta, ki skupaj kažeta lokacijo v odložišču (stack-u) na sledeče prosto mesto, angl. Stackpointer. V našem primeru je to naslov &H04FF To pa je v tem primeru tudi končni naslov pomnilnika, saj toliko pomnilnika ima programirani mikrokrmilnik.

52 Sedaj pa previdno naprej, pritisnemo F8 še dvakrat in izvedemo še dve instrukciji: To sta bila dva print ukaza in vsebina je vidna lepo na simulatorju. Opazimo pa še nekaj: vsebina bajtov okoli naslova 04ff se je spremenila! Nekdo je uporabil stack! Ja, seveda, bascom sam pri zahtevnih ukazih, kot so print tudi kliče svoje podprograme, in pri vsakem klicu se naslov povratka iz podprograma spravi v stack. Oglejmo si sedaj spet Stackpoiner! (SPH in SPL v IO!) Le ta je lepo na 04FF, kot da se ni nič zgodilo. To je zato, ker smo spet v glavnem programu in uporabljeni bajti v stacku so dani nazaj na razpolago, no niso pa brisani na 0, ker to nima pomena. Če se vrnemo na okno pomnilnika, opazimo tudi, da je bascom spremenil tri bajte na naslovu &H440: in to v &H31 (znak enojka) &H33 (znak trojka) in &H00 (konec niza). To so zadnji znaki, ki so izpisani v oknu komunikacije in so bili zaukazani z ukazom Print. Kot vidimo je bascom uporabil tri bajte v področju Frame kot delovni pomnilnik. 52 Bascom AVR začetni tečaj, marec 2008

53 In sedaj še enkrat pritisnimo F8! Stackpointer sedaj kaže &H04FD, dva bajta niže! To je zato, ker se nahajamo v podprogramu A in je tam spravljen naslov povratka v glavni program, ki ga bomo še rabili. Ko bomo rekli Return, se bo od tam vzel naslov, kam se vrniti, in prostor v Stacku se bo sprostil. Tako počasi analizirajte delovanje naprej, korak po korak, dokler ne pridete to konca programa.

54 Zaključek mora biti sledeč: Hwstack upravljam mikroprocesor na osnovi LIFO principa, vanj spravlja in jemlje informacije, predvsem naslove, pri klicanju podprogramov in funkcij, lahko tudi implicitno (Print recimo). Hwstack se polni od najvišjega naslova RAM-a navzdol, ne glede, ali je tam kaj programer pomotoma pisal. Ko se naslovi spet uporabijo, se prostor sprosti. Če je programer na te naslove neprevidno napisal kake podatke, bo mikroprocesor z veliko verjetnostjo smatral te podatke kot naslove, kam nadaljevati program, in tako bo program se odvil v gozd in umrl. V splošnem potrebuje mikroprocesor po dva bajta tega področja za vsak gosub ali klic podprograma ali funkcije. Veliko več pa potrebuje, kadar se starta prekinitveni podprogram brez NOSAVE opcije. Takrat se spravi na stack poleg naslova povratka tudi vsebina večine registrov, (vseh je 32!) NOSAVE opcijo pa si lahko privoščite le, če potem sami v prekinitvenem podprogramu spravite na stack vse tiste registre, ki jih uporabite. Ker pa Bascom programerji ne vemo, katere registre uporabi Bascom, je tak nasvet brez smisla. Software stack uporablja Bascom za naslove spremenljivk podanih kot paramater pri klicu Subroutine ali Funkcije. Pa tudi za vsako v subrutini ali funkciji definirano lokalno spremenljivko. Frame uporablja Bascom kot delovno področje in za lokalno v subroutini ali funkciji definirane spremenljivke. Take spremenljivke so v področju Frame, njih naslovi v swstack. 54 Bascom AVR začetni tečaj, marec 2008

55 EEPROM pisanje in branje Gregor Maček SRAM pomnilnik, v katerem se shranjujejo podatki s katerimi operiramo, ima to slabo lastnost, da se ob izgubi napajanja izbriše. Če želimo določene podatke, parametre itn. shraniti tako, da ob izgubi napajanja podatki ostanejo, jih shranimo pomnilnik EEPROM. EEPROM je kratica za Electrically Erasable Programmable Read-Only Memory. AVR mikroprocesorji imajo določeno količino EEPROM pomnilnika že znotraj samega procesorja, če pa želimo pa lahko dodatni EEPROM povežemo s kontrolerjem preko I2C (ali drugega) protokola in tako povečamo prostor, namenjen podatkom. Da pa ne bo vse tako enostavno je potrebno omeniti neprijetno lastnost EEPROM pomnilnika, pravzaprav dve. Prva je relativno počasno branje in predvsem pisanje (napram SRAM pomnilniku), ki pa nam navadno ne povzroča večjih preglavic. Večja težava je omejeno število prepisovanj pomnilnika, saj se po cca zapisih mesto v EEPROM pomnilniku»obrabi«do te mere, da zapisovanje in branje s tega mesta ni več mogoče. Temu se izognemo s pametno narejenim programom, ki spremenljivke v EEPROM zapisuje le tedaj, ko je to potrebno, sicer pa z njimi izvajamo operacije le v SRAMu. Kot eno izmed možnih rešitev naj navedem rešitev napajanje mikroprocesorja tako, da je v napajalni veji tudi dioda in visokokapacitativni kondenzator, z enim od vhodov pa vseskozi tipamo prisotnost glavnega napajanja naprave. Vkolikor glavno napajanje izgine, zapišemo spremenljivke v EEPROM in procesor zaustavimo (napajanje nikakor ne sme izginiti med samim pisanjem v EEPROM!) dokler se glavno napajanje ne vrne. Tedaj vrednost spremenljivk iz EEPROM pomnilnika prepišemo nazaj spremenljivkam v SRAMu in program se nadaljuje. Druga, elegantnejša (programska) metoda je, da spremenljivke zapisujemo le tedaj, ko se res spremenijo, ne pa ob vsakem prehodu do-loop zanke.

56 Zapisovanje v EEPROM in branje le-tega preko ERAM spremenljivk Najenostavnejša varianta zapisovanja in branja pomnilnika EEPROM za začetnika je preko začasnih t.i. ERAM (EEPROM RAM) spremenljivk. Postopek je sledeč: 1. Kot navadno kreiramo SRAM spremenljivko XXX (ime je lahko poljubno) Dim XXX as Word 2. Kreiramo še dodatno EEPROM spremenljivko exxx (ime je lahko poljubno). Tip spremenljivke ERAM mora biti enak tipu spremenljivke SRAM! Dim exxx As ERAM Word 3. Ko želimo spremenljivko iz delovnega (SRAM) pomnilnika prepisati v EEPROM pomnilnik (torej pisanje v EEPROM), to enostavno storimo z: exxx = XXX 4. Če pa želimo spremenljivko iz EEPROMa prebrati, storimo obratno: XXX = exxx Torej povsem enostavno! Sedaj lahko npr. naredimo enostaven termometer, ki najvišjo in najnižjo izmerjeno temperaturo hrani tudi ob izpadu napajanja. Vkolikor imamo v EEPROMu shranjene določene parametre programa (npr. telefonske številke, nastavitve) je potrebno paziti pri (pre)programiranju mikrokontrolerja, saj je pri večini programatorjev privzeto nastavljeno, da se prepiše/izbriše tudi EEPROM pomnilnik. Vkolikor vrednosti v EEPROMu želimo obdržati, omenjeno možnost izklopimo. Naj še enkrat opozorim, da ima EEPROM pomnilnik omejeno število vpisov, zato je potrebno paziti na sam program, da v EEPROM ne pišemo prepogosto. 56 Bascom AVR začetni tečaj, marec 2008

57 Zapisovanje v EEPROM in branje le-tega preko ukazov READEEPROM in WRITEEEPROM Bascom pa omogoča tudi drug, naprednejši način pisanja in branja EEPROMa preko ukazov WRITEEEPROM in READEEPROM ter direktno pisanje konstant v EEPROM s pomočjo $eeprom ukaza. $eeprom Z vključitvijo omenjenega ukaza v program prevajalniku povemo, da bomo deklarirali konstante, ki bodo vpisane v EEPROM pomnilnik. Prevajalnik generira EPP datoteko, ki jo s programatorjem zapišemo v EEPROM mikrokontrolerja. $eeprom P_eeprom: Data 1, 2, 3, 4, 5 $data 'Zapisujemo v EEPROM 'Deklariramo podatkovno polje P_eeprom ' in mu vnesemo podatke. 'Preklopimo nazaj v FLASH način! Readeeprom Sedaj bomo v programu (v FLASH pomnilniku) prebrali omenjene podatke: Dim A as byte Readeeprom B, P_eeprom '1. vrednost iz Polje_eeprom prenesemo v spr. B Print B 'In to vrednost pošljemo na RS232 terminal Vkolikor bi bili sedaj v Do-Loop zanki, bi prebrali vse vrednosti iz polja Polje_eeprom, ob vsakem prehodu naslednjo vrednost. Writeeeprom V EEPROM lahko tudi pišemo: Dim B as byte B = 10 Writeeeprom B, P_eeprom B = 11 Writeeeprom B 'Prvič moramo deklarirati tudi kam pišemo ' za naslednji vpis pa to ni več potrebno

58 Pomagala, ki mi pomagajo pri delu z mikroprocesorji Vilko Sustič Moja praksa z mikroprocesorji sicer ni bogvekaj, a do nekaterih ugotovitev sem prišel, in sem zadovoljen z njimi. S tem papirjem jih dajem na razpolago tudi drugim, saj če vam bo všeč boste morda kopirali, v najslabšem slučaju boste zamahnili z roko in šli dalje. 3-pinski konektor Prišel sem do zaključka, da na vsakem tiskanem vezju, ki ga krmili mikroprocesor, dodam še enega ali dva 3-pinska konektorja, ki jih sicer pri samem delovanju naprave ne potrebujem, ampak kar tako, 'za vsak slučaj'. Pri tem se držim vedno enakega razporeda kontaktov v 2- Nek prost vhodno/izhodni pin mikroprocesorja, ki ga sicer ne rabim 3- Masa Tak konektor naknadno lahko uporabim na različne načine, nanj priklopim dodatno led diodo, tipko, lahko z njim krmilim naprej kako drugo napravo, kar v prvem konceptu nisem imel v mislih in podobno. Na sledeči sliki je napravica z dvema takima konektorjema. Enostavno prost prostor na tiskanem vezju sem zapolnil s konektorejma in ju povezal s prostima pinoma mikroprocesorja. 58 Bascom AVR začetni tečaj, marec 2008

59 V programu predvideti programska pomagala za lažje odkrivanje napak. Kdor dela, dela napake. Kdor programira, vgrajuje v program tudi napake. In potem jih skuša odpraviti. Če samo gledamo v čip mikroprocesorja lahko samo ugibamo, kaj se v njem dogaja, ugibanje pa nas samo počasi pripelje do resnice. Da pridemo do resnice prej, vgradimo v program ukaze, s katerimi nas program obvešča, kaj se v mikroprocesorju dogaja. Če ima naprava LCD ali kako drugo izhodno enoto na kateri se pojavljajo obvestila uporabniku, potem programiramo izpis takih testnih obvestil pač na tako napravo. Ko smo z delovanjem programa zadovoljni, tedaj taka pomožna obvestila odstranimo iz programa. V Bascomu bi to naredili morda tako... ' nekje definiramo konstano test ' const test = 1.. ' potem vgradimo izpis pomožnih informacij If test = 1 then Lcd 'Stevec = ';stevec End if. ' ali pa #if test = 1 Lcd 'Stevec = ';stevec #endif Seveda se da to narediti v kateremkoli programskem jeziku, le pravila so drugačna, a podobna. Ko smo s programom zadovoljni, enostavno spremenimo konstanto test v 0 in ponovno prevedemo program. Naj še omenim razliko med Bascom ukazoma if in #if. Med tem, ko se preverjanje pogoja pri ukazu if dogaja v mikroprocesorju med izvajanjem programa, se preverjanje pogoja pri ukazi #if izvaja že v fazi prevajanja programa na PC-u, in tedaj se pogojna koda, če pogoj ni izpolnjen, sploh ne vgradi v mikroprocesorski program. Kaj pa če naprava nima LCD-a ali neke druge primerne enote za komuniciranje z človekom? Tedaj pride prav prej omenjeni 3-pinski konektor kamor vklopimo kabel za povezavo s PC-jem. Tedaj bomo ekran PC-a uporabili kot enoto, kamor bo naš program pisal obvestila nam, ko bomo testirali program. Ko bomo s programom zadovoljni, potem bomo enostavno kabel izvlekli iz konektorja in napravo vgradili tja, kjer bo upravljala ali nadzirala tisto, za kar je namenjena. V ta namen imata Bascom8051 in BascomAVR takoimenovani softverski uart, ki ga definiramo z

60 Open "com1.6:9600" For Output As #2 ali Open "comd.2:9600,8,n,1" For Output As #2 Detajle Open ukaza si oglejte v Bascom Help-u! Seveda že iz definicije pina vidimo, da je prvi ukaz za 8051 mikroprocesor, kajti le on ima pin P1.6 drugi pa je za AVR mikroprocesor, ker le on ima PinD.2 Seveda je to pin, ki je vezan na kontakt 2 3-polnega pomožnega konektorja, ki sem ga na začetku omenil. Sedaj lahko v Bascomu AVR lepo pišemo testne pomožne informacije Recimo Print #2, "Stanje števca = "; Števec In stanje števca se bo pojavilo v novi vrstici na ekranu PC-a, če bomo seveda pravilno povezali PC z našim 3-pinskim konektorjem, a o tem kasneje. No, v Bascom8051 ne moremo pisati tako, ker pozna za softwarski uart samo ukaze Put, ki prenašajo samo en bajt, ne pa tudi ukaze Print, kjer lahko pišemo cele vrstice. Pa si potem naredimo podprogram, ki nam bo nadomestil ukaz Print, vsebino, ki jo želimo napisati pa sestavimo v spremenljivki tipa niz. 60 Bascom AVR začetni tečaj, marec 2008

61 Recimo Dim S As String * 16 'Področje za swuart ' splošne deloven spremenljivke programa Dim i as byte Dim j as byte Dim k as byte Open "com1.6:9600" For Output As #2 S = "Stevec = " + Str(Stevec) Gosub Suartprint Podprogram Suartprint pa bo bajt po bajt spremenljivke S prenesel na softwareuart: Suartprint: push {i} push {j} push {k} ' Suartprint I = Len(s) If I > 16 Then I = 16 End If ' Pišem niz: For J = 1 To I K = J + 1 Put #2, X(k) Next ' in zaključim z CR/NL Put #2, 10 Put #2, 13 pop {k} pop {j} pop {i} Waitms 10 Return Podprogram najprej spravi vsebino delovnih spremenljivk i,j in k na odložišče (stack), da ne bi s spremembo vsebine teh spremenljivk pokvaril delovanje glavnega programa, saj le ta ima lahko v njih važno vsebino. Potem ugotavlja, koliko znakov je potrebno oddati, potem v for zanki te znake odda, in potem odda še dva znaka, ki jih PC potem obravnava kot konec vrstice. Pri Bascom8051 imamo še eno neprijazno zadevo: ti mikroprocesorji imajo zelo malo delovnega pomnilnika RAMa, in z Dim S as string * 16 ga morda preveč obremenimo, tedaj, je potrebno pač manjše dimenzije niza, in paziti pri sestavljanju niza na prekoračitev in pisati (klicati podprogram) pogosteje.

62 Seveda še nismo končali. Sedaj so ti znaki šele na kontaktu 2 3-pinskega konektorja. Kako pridejo na ekran PC-a? Najprej je potrebno 3-pinski konektor z neko vmesno napravico (interface, vmesnik) povezati s Serial Portom PC-a ali kot rečemo z Com portom. V ta namen sem si izdelal napravico po tej shemi: (priznam shemo si nisem izmislil sam, temveč sem jo našel na internetu na ) Na levi je 9-pinski DB9 ženski konektor, ki paše na konektor PC-a. Na desni priklopimo ta vmesnik na 3-pinski konektor naše naprave, kjer s pomočjo softare-uarta pišemo serijsko podatke, in jih dajemo na fotodiodo optospojke. Kot vidite je levi del vmesnika popolnoma galvansko ločen od desnega, in tako je PC zaščiten pred električnimi udarci, ki bi ga lahko udarili zaradi kake električne napake iz naše naprave. Levi del vmesnika je napajan iz RTS kontakta 9-polnega konektorja, in tranzistor optospojke prenaša optični signal v električni na RXD kontakt COM porta. 62 Bascom AVR začetni tečaj, marec 2008

63 Napravico sem naredil na testni ploščici (proto board-u) in izgleda tako: Lepo se vidi ploski kabel, ki se konča s 3-polno vtičnico za omenjeni 3-polni konektor, čeprav potrebujemo samo dve žili, +5V in pin. Sedaj je potrebno le še to informacijo prenesti na ekran. To naredi na PC-u program, ki mu rečemo terminal emulator. Takih programov je več, a po mojih izkušnjah je najboljši sad domače slovenske pameti, naredil ga je in dal na splošno brezplačno uporabo v osebne namene gospod Vlado Brajer, dobite ga pa na spletni strani

64 Ko instalirate in poženete program, boste dobili približno tako sliko: In sedaj važno: potem ko ste nastavili hitrost na 9600 (kot pri open ukazu v Bascomu ), potem, ko ste izbrali COMport (PC jih lahko ima več), in ko ste kliknili na Connect, morate zagotoviti vmesniku napajanje preko RTS signala tako, da kliknete na RTS tipko na desnem robu okna. In to je to. To seveda vse lepo deluje, če testiramo napravo na naši delovni mizi, kjer imamo tudi osebni računalnik z ekranom. Pokaže pa se tudi potrebna, da iščemo napake v programu tudi kasneje, ko je stvar že instalirana nekje recimo v kurilnici, ali na podstrešju, kjer ne moremo z osebnim računalnikom zraven. 64 Bascom AVR začetni tečaj, marec 2008

65 V ta namen sem si naredil posebno mikroprocesorsko ploščico po sledeči shemi: (Tudi ta se napaja kar iz napetosti 3-polnega konektorja) Kot je videti, imamo samo mikroprocesor, ki daje na LCD podatke, ki jih prebere iz pina 2 3-polnega konektorja. Seveda stvar še daleč ni tako udobna, kot ekran PC-a, saj imamo le dve kratki vrstici podatkov na LCD-u. Vsaka nova vrstica se pojavi na LCD-u spodaj, stara vrstica se premakne navzgor. Morda bi bilo smiselno uporabiti v ta namen kak močnejši avr mikroprocesor in LCD z več vrsticami, a nekaj moram pustiti tudi vam, da imate veselje naprej delati, kaj ne?

66 Internetni naslovi Splošni linki Originalna stran proizvajalca ATMEL, kjer lahko najdemo datasheete vseh AVRjev, program za programiranje (AVR Studio) itd. Originalna stran Bascom AVR / Stran za AVR navdušence! Stran z zanimivimi projekti, primerna za začetnike! Spletni forumi _forum&itemid=59 Verjetno največji slovenski forum, namenjen vsemu povezanim z elektroniko. Forum revije Svet elektronike; še en slovenski elektro forum Slovenski elektro forum v nastajanju (na bazi elektro-n foruma) Forum uporabnikov Bascoma (v sklopu strani Spletne trgovine Svet elektronike; literatura, programi, elementi (pretežno za projekte, objavljene v SE), mikroprocesorji, KIT kompleti HTE (Ljubljana, Maribor, Celje); elementi Just; orodje, merilna oprema, elementi 66 Bascom AVR začetni tečaj, marec 2008

67 Informacije o pogostih kontrolerjih Razpored pinov, posebne funkcije, velikost FLASH, SRAM, EEPROM pomnilnika in še mnogo drugih, uporabnih informacij iščemo v proizvajalčevem tehničnem katalogu (morda prevod ni najustreznejši če rečem datasheet boste razumeli...). Sledenjega najlažje dobimo kar na domači strani proizvajalca (torej Da pa na bo potrebno za vsako vezavo gledati omenjenih publikacij, smo v tej publikaciji izbrali nekaj najpogosteje uporabljenih AVR mikrokontrolerjev, od najšibkejših do najzmogljivejših. AT Tiny 2313 Flash: 2k SRAM: 128 EEPROM: 128 Pinov: 20 Drugo: 2xINT, 1xUART* *4MHz notranji oscilator ni točen, za UART komunikacijo uporabi 8MHz int. oscilator ali kristal. AT Tiny 45 Flash: 4k SRAM: 256 EEPROM: Pinov: 8 Drugo: 3xADC, 3x INT AT Mega 8515 Flash: 8k SRAM: 512 EEPROM: 512 Pinov: 40 Drugo: 2x INT, 1x UART

68 AT Mega 8 Flash: 8k SRAM: 1024 EEPROM: 512 Pinov: 28 Drugo: 6xADC, 2x INT, 1x UART AT Mega 16 <Flash: 16k SRAM: 1024 EEPROM: 512 Pinov: 40 Drugo: 8xADC, 1xUART, 2xINT AT Mega 128 Flash: 128k SRAM: 4096 EEPROM: 4096 Pinov: 64 Drugo: 8xADC, 8xINT, 2xUART AT Mega 2560 Flash: 256k SRAM: 8192 EEPROM: 4096 Pinov: 100 Drugo: 16xADC, 8xINT, 4xUART 68 Bascom AVR začetni tečaj, marec 2008

R V P 2 Predavanje 05

R V P 2 Predavanje 05 R V P 2 Predavanje 05 Kreiranje programskih modulov - Scripts RVP2 Kreiranje programskih modulov 1/44 Programski moduli -Scripts Možnosti: Omogočajo: Izvajanje ukazov Izvajanje logičnih operacij Ob določenih

More information

Reševanje problemov in algoritmi

Reševanje problemov in algoritmi Reševanje problemov in algoritmi Vhod Algoritem Izhod Kaj bomo spoznali Zgodovina algoritmov. Primeri algoritmov. Algoritmi in programi. Kaj je algoritem? Algoritem je postopek, kako korak za korakom rešimo

More information

TOPLJENEC ASOCIIRA LE V VODNI FAZI

TOPLJENEC ASOCIIRA LE V VODNI FAZI TOPLJENEC ASOCIIRA LE V VODNI FAZI V primeru asociacij molekul topljenca v vodni ali organski fazi eksperimentalno določeni navidezni porazdelitveni koeficient (P n ) v odvisnosti od koncentracije ni konstanten.

More information

! BASCO CO AVR AVR " #$

! BASCO CO AVR AVR  #$ ASCOM AVR AVR BA 10.. www.eca.ir 1 4... 5... 7... 9... 9... avr AVR.1-2 11... atmega16.1-1-2 14... ATMEGA8.2-2 15... bascom avr 15... bascom.1-3 16... file.1-1-3 1. 2. 3. 16... edit.2-1-3 17...program.3-1-3

More information

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan Računalnik iz domin Primož Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan Povzetek Naša naloga je bila ugotoviti kako sestaviti računalnik (Turingov stroj) iz domin in logičnih izrazov.

More information

Uporaba preglednic za obdelavo podatkov

Uporaba preglednic za obdelavo podatkov Uporaba preglednic za obdelavo podatkov B. Golli, PeF Pedagoška fakulteta UL Ljubljana 2012 Kazalo 1 Uvod 1 2 Zgled iz kinematike 2 2.1 Izračun hitrosti................................... 2 2.2 Izračun

More information

OPTIMIRANJE IZDELOVALNIH PROCESOV

OPTIMIRANJE IZDELOVALNIH PROCESOV OPTIMIRANJE IZDELOVALNIH PROCESOV asist. Damir GRGURAŠ, mag. inž. str izr. prof. dr. Davorin KRAMAR damir.grguras@fs.uni-lj.si Namen vaje: Ugotoviti/določiti optimalne parametre pri struženju za dosego

More information

Digitalne strukture. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta:

Digitalne strukture. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta: Univerza v Ljubljani Fakulteta za elektrotehniko Digitalne strukture Delovni zvezek za laboratorijske vaje doc. dr. Gorazd Pucihar Ime in priimek študenta: Navodila za laboratorijske vaje Splošno Vaje

More information

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ 1 OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ Opis problema. Danih je k vhodnih nizov, ki jih označimo s t 1,..., t k. Množico vseh znakov, ki se pojavijo v vsaj enem vhodnem nizu, imenujmo abeceda in jo označimo

More information

Analogna elektronska vezja. Uvodna vaja

Analogna elektronska vezja. Uvodna vaja Analogna elektronska vezja Uvodna vaja Povzetek Namen uvodne vaje je, da študenti spoznajo orodja, ki jih bojo uporabljali pri laboratorijskih vajah predmeta Analogna elektronska vezja in sicer: podatkovne

More information

Attempt to prepare seasonal weather outlook for Slovenia

Attempt to prepare seasonal weather outlook for Slovenia Attempt to prepare seasonal weather outlook for Slovenia Main available sources (ECMWF, EUROSIP, IRI, CPC.NCEP.NOAA,..) Two parameters (T and RR anomally) Textual information ( Met Office like ) Issued

More information

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

AKSIOMATSKA KONSTRUKCIJA NARAVNIH UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Poučevanje: Predmetno poučevanje ŠPELA ZOBAVNIK AKSIOMATSKA KONSTRUKCIJA NARAVNIH ŠTEVIL MAGISTRSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

More information

Digitalna tehnika. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta:

Digitalna tehnika. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta: Univerza v Ljubljani Fakulteta za elektrotehniko Digitalna tehnika Delovni zvezek za laboratorijske vaje doc. dr. Gorazd Pucihar Ime in priimek študenta: Navodila za laboratorijske vaje Splošno Vaje potekajo

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

More information

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R Multipla koelacia in egesia Multipla egesia, multipla koelacia, statistično zaklučevane o multiplem Multipla egesia osnovni model in ačunane paametov Z multiplo egesio napoveduemo vednost kiteia (odvisne

More information

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink Laboratorijske vaje Računalniška simulacija 2012/13 1. laboratorijska vaja Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink Pri tej laboratorijski vaji boste spoznali

More information

Zgoščevanje podatkov

Zgoščevanje podatkov Zgoščevanje podatkov Pojem zgoščevanje podatkov vključuje tehnike kodiranja, ki omogočajo skrajšan zapis neke datoteke. Poznan program za zgoščevanje datotek je WinZip. Podatke je smiselno zgostiti v primeru

More information

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA UDK621.3:(53+54+621 +66), ISSN0352-9045 Informaclje MIDEM 3~(~UU8)4, Ljubljana ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA Marijan Macek 1,2* Miha Cekada 2 1 University of Ljubljana,

More information

NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji!

NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji! 1998.1.1] 1 22. državno tekmovanje v znanju računalništva (1998) 1998.1.1 NALOGE ZA PRVO SKUPINO Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji! program Ego; const S: array [1..21] of string

More information

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION Table of contents 1 TECHNICAL FIELDS... 2 2 PRESENTING THE SCOPE OF A CALIBRATION LABOORATORY... 2 3 CONSIDERING CHANGES TO SCOPES... 6 4 CHANGES WITH

More information

Izmenični signali moč (17)

Izmenični signali moč (17) Izenicni_signali_MOC(17c).doc 1/7 8.5.007 Izenični signali oč (17) Zania nas potek trenutne oči v linearne dvopolne (dve zunanji sponki) vezju, kjer je napetost na zunanjih sponkah enaka u = U sin( ωt),

More information

Vsebina Od problema do načrta programa 1. del

Vsebina Od problema do načrta programa 1. del Vsebina Od problema do načrta programa 1. del Osnovne strategije iskanja rešitev problema Načini opisovanja rešitev problema Osnovni gradniki rešitve problema Primeri Napišite postopek za kuhanje kave

More information

Optimizacija delovanja in povečanje obiska na spletni strani

Optimizacija delovanja in povečanje obiska na spletni strani UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Jure Adlešič Optimizacija delovanja in povečanje obiska na spletni strani DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU Mentor: doc.

More information

ENAČBA STANJA VODE IN VODNE PARE

ENAČBA STANJA VODE IN VODNE PARE ENAČBA STANJA VODE IN VODNE PARE SEMINARSKA NALOGA PRI PREDMETU JEDRSKA TEHNIKA IN ENERGETIKA TAMARA STOJANOV MENTOR: IZRED. PROF. DR. IZTOK TISELJ NOVEMBER 2011 Enačba stanja idealni plin: pv = RT p tlak,

More information

Državni izpitni center. Izpitna pola 1. Četrtek, 4. junij 2015 / 90 minut

Državni izpitni center. Izpitna pola 1. Četrtek, 4. junij 2015 / 90 minut Š i f r a k a n d i d a t a : Državni izpitni center *M15177111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 4. junij 015 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

More information

Problem umetnostne galerije

Problem umetnostne galerije Problem umetnostne galerije Marko Kandič 17. september 2006 Za začetek si oglejmo naslednji primer. Recimo, da imamo v galeriji polno vrednih slik in nočemo, da bi jih kdo ukradel. Seveda si želimo, da

More information

Spletni sistem za vaje iz jezika SQL

Spletni sistem za vaje iz jezika SQL UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Matematika praktična matematika (VSŠ) Ines Frelih Spletni sistem za vaje iz jezika SQL Diplomska naloga Ljubljana, 2011 Zahvala Zahvalila bi se rada

More information

Hipohamiltonovi grafi

Hipohamiltonovi grafi Hipohamiltonovi grafi Marko Čmrlec, Bor Grošelj Simić Mentor(ica): Vesna Iršič Matematično raziskovalno srečanje 1. avgust 016 1 Uvod V marsovskem klubu je želel predsednik prirediti večerjo za svoje člane.

More information

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik Univerza v Ljubljani Fakulteta za matematiko in fiziko Oddelek za fiziko Seminar - 3. letnik, I. stopnja Kvantni računalniki Avtor: Tomaž Čegovnik Mentor: prof. dr. Anton Ramšak Ljubljana, marec 01 Povzetek

More information

Naloge iz LA T EXa : 3. del

Naloge iz LA T EXa : 3. del Naloge iz LA T EXa : 3. del 1. V besedilo vklju ite naslednjo tabelo skupaj z napisom Kontrolna naloga Dijak 1 2 Povpre je Janko 67 72 70.5 Metka 72 67 70.5 Povpre je 70.5 70.5 Tabela 1: Rezultati kontrolnih

More information

NIKJER-NIČELNI PRETOKI

NIKJER-NIČELNI PRETOKI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA ALJA ŠUBIC NIKJER-NIČELNI PRETOKI DIPLOMSKO DELO LJUBLJANA, 2016 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Dvopredmetni učitelj: matematika - računalništvo ALJA

More information

22. državno tekmovanje v znanju računalništva (1998) NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? Rešitev: str. 8

22. državno tekmovanje v znanju računalništva (1998) NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? Rešitev: str. 8 1998.1.1] 1 22. državno tekmovanje v znanju računalništva (1998) Naloge Rešitve I 1 2 3 4 1 2 3 4 II 1 2 3 4 1 2 3 4 III 1 2 3 4 1 2 3 4 1998.1.1 NALOGE ZA PRVO SKUPINO Kaj izpiše naslednji program? Rešitev:

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Verjetnostni algoritmi za testiranje praštevilskosti (Algorithms for testing primality) Ime in

More information

Linearna regresija. Poglavje 4

Linearna regresija. Poglavje 4 Poglavje 4 Linearna regresija Vinkove rezultate iz kemije so založili. Enostavno, komisija je izgubila izpitne pole. Rešitev: Vinko bo kemijo pisal še enkrat. Ampak, ne more, je ravno odšel na trening

More information

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA UDK 543.428.2:544.171.7 ISSN 1580-2949 Original scientific article/izvirni znanstveni ~lanek MTAEC9, 49(3)435(2015) B. PONIKU et al.: USING SIMULATED SPECTRA TO TEST THE EFFICIENCY... USING SIMULATED SPECTRA

More information

POLDIREKTNI PRODUKT GRUP

POLDIREKTNI PRODUKT GRUP UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUCIJA ŽNIDARIČ POLDIREKTNI PRODUKT GRUP DIPLOMSKO DELO LJUBLJANA 2014 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Univerzitetni študijski program 1. stopnje: Dvopredmetni

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Uporaba logistične regresije za napovedovanje razreda, ko je število enot v preučevanih razredih

More information

Klemen Konič, 4. GB Tehniška gimnazija Tehniški Šolski Center Nova Gorica

Klemen Konič, 4. GB Tehniška gimnazija Tehniški Šolski Center Nova Gorica o Zaključna naloga»računalništvo«------------------------------------------ Oblikovanje in izdelava spletne strani Skripta za novice CMS sistemi ------------------------------------------ Klemen Konič,

More information

Univerza na Primorskem. Fakulteta za matematiko, naravoslovje in informacijske tehnologije. Zaznavanje gibov. Zaključna naloga

Univerza na Primorskem. Fakulteta za matematiko, naravoslovje in informacijske tehnologije. Zaznavanje gibov. Zaključna naloga Univerza na Primorskem Fakulteta za matematiko, naravoslovje in informacijske tehnologije Boštjan Markežič Zaznavanje gibov Zaključna naloga Koper, september 2011 Mentor: doc. dr. Peter Rogelj Kazalo Slovarček

More information

23. državno tekmovanje v znanju računalništva (1999) NALOGE ZA PRVO SKUPINO

23. državno tekmovanje v znanju računalništva (1999) NALOGE ZA PRVO SKUPINO 1999.1.1 4] Leto 1999, naloge za prvo skupino 1 23. državno tekmovanje v znanju računalništva (1999) 1999.1.1 NALOGE ZA PRVO SKUPINO Podjetje Import Eskort te je najelo za svetovalca za rešitev Rešitev:

More information

NALOGE ZA PRVO SKUPINO

NALOGE ZA PRVO SKUPINO 1999.1.1 3] 1 23. državno tekmovanje v znanju računalništva (1999) 1999.1.1 NALOGE ZA PRVO SKUPINO Podjetje Import Eskort te je najelo za svetovalca za rešitev R: 11 njihovega problema letnice 2000. V

More information

DIGITALNO VODENJE Laboratorijske vaje

DIGITALNO VODENJE Laboratorijske vaje II FAKULTETA ZA ELEKTROTEHNIKO DIGITALNO VODENJE Laboratorijske vaje GREGOR KLANČAR Kazalo 1. Spoznavanje z mikrokrmilniškim okoljem Arduino Uno 1 1.1 Opis tiskanine Arduino Uno..................... 1

More information

Verodostojnost in kvaliteta spletno dostopnih informacij

Verodostojnost in kvaliteta spletno dostopnih informacij Univerza v Ljubljani Filozofska fakulteta Oddelek za bibliotekarstvo, informacijsko znanost in knjigarstvo Verodostojnost in kvaliteta spletno dostopnih informacij Mentor: dr. Jure Dimec Lea Očko Katja

More information

Izvedbe hitrega urejanja za CPE in GPE

Izvedbe hitrega urejanja za CPE in GPE Univerza v Ljubljani Fakulteta za računalništvo in informatiko Jernej Erker Izvedbe hitrega urejanja za CPE in GPE DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJ RAČUNALNIŠTVA IN INFORMATIKE Mentor: doc. dr. Tomaž

More information

Modelska Analiza 1. University of Ljubljana Faculty of Mathematics and Physics. 3. naloga - Numeri na minimizacija

Modelska Analiza 1. University of Ljubljana Faculty of Mathematics and Physics. 3. naloga - Numeri na minimizacija University of Ljubljana Faculty of Mathematics and Physics Modelska Analiza 1 3. naloga - Numeri na minimizacija Avtor: Matic Lubej Asistent: dr. Simon ƒopar Predavatelj: prof. dr. Alojz Kodre Ljubljana,

More information

Eulerjevi in Hamiltonovi grafi

Eulerjevi in Hamiltonovi grafi Eulerjevi in Hamiltonovi grafi Bojan Možina 30. december 006 1 Eulerjevi grafi Štirje deli mesta Königsberg v Prusiji so bili povezani s sedmimi mostovi (glej levi del slike 1). Zdaj se Königsberg imenuje

More information

A L A BA M A L A W R E V IE W

A L A BA M A L A W R E V IE W A L A BA M A L A W R E V IE W Volume 52 Fall 2000 Number 1 B E F O R E D I S A B I L I T Y C I V I L R I G HT S : C I V I L W A R P E N S I O N S A N D TH E P O L I T I C S O F D I S A B I L I T Y I N

More information

matematika + biologija = sistemska biologija? Prof. Dr. Kristina Gruden Prof. Dr. Aleš Belič Doc. DDr. Jure Ačimovič

matematika + biologija = sistemska biologija? Prof. Dr. Kristina Gruden Prof. Dr. Aleš Belič Doc. DDr. Jure Ačimovič matematika + biologija = sistemska biologija? Prof. Dr. Kristina Gruden Prof. Dr. Aleš Belič Doc. DDr. Jure Ačimovič Kaj je sistemska biologija? > Razumevanje delovanja organizmov sistemska biologija =

More information

Statistika 2 z računalniško analizo podatkov

Statistika 2 z računalniško analizo podatkov Statistika 2 z računalniško analizo podatkov Bivariatne analize 1 V Statistične analize v SPSS-ju V.4 Bivariatne analize Analyze - Descriptive statistics - Crosstabs Analyze Correlate Bivariate Analyze

More information

1) V diagramu sta prikazana plazemska koncentracijska profila po večkratnem intravenskem odmerjanju učinkovine v dveh različnih primerih (1 in 2).

1) V diagramu sta prikazana plazemska koncentracijska profila po večkratnem intravenskem odmerjanju učinkovine v dveh različnih primerih (1 in 2). NALOGE ) V diagramu sta prikazana plazemska koncentracijska profila po večkratnem intravenskem odmerjanju učinkovine v dveh različnih primerih ( in ). 0.8 0.6 0.4 0. 0.0 0.08 0.06 0.04 0.0 0.00 0 0 0 30

More information

Statistika 2 z računalniško analizo podatkov. Neizpolnjevanje predpostavk regresijskega modela

Statistika 2 z računalniško analizo podatkov. Neizpolnjevanje predpostavk regresijskega modela Statistika 2 z računalniško analizo podatkov Neizpolnjevanje predpostavk regresijskega modela 1 Predpostavke regresijskega modela (ponovitev) V regresijskem modelu navadno privzamemo naslednje pogoje:

More information

Usmerjene nevronske mreže: implementacija in uporaba

Usmerjene nevronske mreže: implementacija in uporaba Seminar - 4. letnik Usmerjene nevronske mreže: implementacija in uporaba Avtor: Miha Marolt Mentorja: Marko Žnidarič, Drago Kuzman Kranj, 24.4.2010 Povzetek Usmerjena večnivojska nevronska mreˇza(uvnm)

More information

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK - FIZIKA. Matej Posinković KVANTNI RAČUNALNIKI SEMINAR. Mentor: prof.

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK - FIZIKA. Matej Posinković KVANTNI RAČUNALNIKI SEMINAR. Mentor: prof. UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK - FIZIKA Matej Posinković KVANTNI RAČUNALNIKI SEMINAR Mentor: prof. Anton Ramšak Ljubljana, 003 1 KAZALO I.UVOD...3 II. KUBIT...3 III. KVANTNA

More information

Zanesljivostna analiza ARM9 razvojnega sistema FRI SMS

Zanesljivostna analiza ARM9 razvojnega sistema FRI SMS Zanesljivostna analiza ARM9 razvojnega sistema FRI SMS Seminar pri predmetu RZD Jure Balabanič, Mitja Cerkvenik, Jani Černe, Vlado Dimitrieski, Jernej Gorički, Jure Janša, Gregor Jeraj, Tine Kavčič, Urša

More information

Analiza variance in linearna regresija

Analiza variance in linearna regresija Analiza variance in linearna regresija Aleš Žiberna 28. november 2011 Kazalo 1 Uporabljeni podatki 2 2 Analiza variance (ANOVA) 2 2.1 Enofaktorska analiza variance za neodvisne vzorce....... 3 2.2 Večfaktorska

More information

MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE

MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE UDK621.3:(53+54+621 +66), ISSN0352-9045 Informacije MIDEM 38(2008)4, Ljubljana MICROWAVE PLASMAS AT ATMOSPHERIC PRESSURE: NEW THEORETICAL DEVELOPMENTS AND APPLICATIONS IN SURFACE SCIENCE T. 8elmonte*,

More information

Samo-nastavljivo vodenje z DMC-jem in proporcionalnim regulatorjem

Samo-nastavljivo vodenje z DMC-jem in proporcionalnim regulatorjem Samo-nastavljivo vodenje z DMC-jem in proporcionalnim Matija Arh, Igor Škrjanc Fakulteta za elektrotehniko, Univerza v Ljubljani Tržaška cesta 25, 1000 Ljubjana matija.arh@fe.uni-lj.si, igor.skrjanc@fe.uni-lj.si

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO Študijski program: Fizika in tehnika

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO Študijski program: Fizika in tehnika UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO Študijski program: Fizika in tehnika PREDLOG IZVEDBE UČNEGA PROJEKTA Z UPORABO ODSLUŽENIH ELEKTRONSKIH NAPRAV DIPLOMSKO DELO Mentor:

More information

C-PROGRAMIRANJE ARM9 MIKROKRMILNIKOV V PROSTO DOSTOPNEM RAZVOJNEM OKOLJU ZA LINUX

C-PROGRAMIRANJE ARM9 MIKROKRMILNIKOV V PROSTO DOSTOPNEM RAZVOJNEM OKOLJU ZA LINUX UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO Študijski program: Fizika in tehnika C-PROGRAMIRANJE ARM9 MIKROKRMILNIKOV V PROSTO DOSTOPNEM RAZVOJNEM OKOLJU ZA LINUX DIPLOMSKO

More information

Fakulteta za matematiko in fiziko Univerza v Ljubljani. Seminar. Kvantni računalniki. Avtor: Matjaž Gregorič. Mentor: prof. N.S.

Fakulteta za matematiko in fiziko Univerza v Ljubljani. Seminar. Kvantni računalniki. Avtor: Matjaž Gregorič. Mentor: prof. N.S. Fakulteta za matematiko in fiziko Univerza v Ljubljani Seminar Kvantni računalniki Avtor: Matjaž Gregorič Mentor: prof. N.S. Mankoč Borštnik Ljubljana, november 7 Povzetek V seminarju so predstavljene

More information

Iskanje najcenejše poti v grafih preko polkolobarjev

Iskanje najcenejše poti v grafih preko polkolobarjev Univerza v Ljubljani Fakulteta za računalništvo in informatiko Veronika Horvat Iskanje najcenejše poti v grafih preko polkolobarjev DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

Paralelni in distribuirani algoritmi v numerični analizi

Paralelni in distribuirani algoritmi v numerični analizi Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Kralj Paralelni in distribuirani algoritmi v numerični analizi DIPLOMSKO DELO UNIVERZITETNI INTERDISCIPLINARNI ŠTUDIJSKI PROGRAM PRVE

More information

Hadamardove matrike in misija Mariner 9

Hadamardove matrike in misija Mariner 9 Hadamardove matrike in misija Mariner 9 Aleksandar Jurišić, 25. avgust, 2009 J. Hadamard (1865-1963) je bil eden izmed pomembnejših matematikov na prehodu iz 19. v 20. stoletje. Njegova najpomembnejša

More information

Sodobna orodja in postopki za načrtovanje algortimov vodenja servopogonov

Sodobna orodja in postopki za načrtovanje algortimov vodenja servopogonov AIG 03, MARIBOR Sodobna orodja in postopki za načrtovanje algortimov vodenja servopogonov Miran Rodič, Karel Jezernik Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova

More information

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO.

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Sabina Skornšek Maribor, 2012 UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO

More information

USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE SHOT PUT ANALYSIS. Matej Supej* Milan Čoh

USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE SHOT PUT ANALYSIS. Matej Supej* Milan Čoh Kinesiologia Slovenica, 14, 3, 5 14 (28) Faculty of Sport, University of Ljubljana, ISSN 1318-2269 5 Matej Supej* Milan Čoh USING THE DIRECTION OF THE SHOULDER S ROTATION ANGLE AS AN ABSCISSA AXIS IN COMPARATIVE

More information

Simulation of multilayer coating growth in an industrial magnetron sputtering system

Simulation of multilayer coating growth in an industrial magnetron sputtering system RMZ Materials and Geoenvironment, Vol. 57, No. 3, pp. 317 330, 2010 317 Simulation of multilayer coating growth in an industrial magnetron sputtering system Simulacija rasti večplastnih prevlek v industrijski

More information

Verifikacija napovedi padavin

Verifikacija napovedi padavin Oddelek za Meteorologijo Seminar: 4. letnik - univerzitetni program Verifikacija napovedi padavin Avtor: Matic Šavli Mentor: doc. dr. Nedjeljka Žagar 26. februar 2012 Povzetek Pojem verifikacije je v meteorologiji

More information

Državni izpitni center. Izpitna pola 1. Sobota, 27. avgust 2016 / 90 minut

Državni izpitni center. Izpitna pola 1. Sobota, 27. avgust 2016 / 90 minut Š i f r a k a n d i d a t a : Državni izpitni center *M1677111* JESENSKI IZPITNI OK Izpitna pola 1 Sobota, 7. avgust 016 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali kemični

More information

OPTIMIZACIJA Z ROJEM DELCEV

OPTIMIZACIJA Z ROJEM DELCEV UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE Smer: organizacijska informatika OPTIMIZACIJA Z ROJEM DELCEV Mentor: doc. dr. Igor Bernik Kandidat: Matjaž Lipovšek Kranj, december 2005 Izjava: "Študent

More information

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI B. Faganel Kotnik, L. Kitanovski, J. Jazbec, K. Strandberg, M. Debeljak, Bakija, M. Benedik Dolničar A. Trampuš Laško, 9. april 2016

More information

PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH

PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE Smer: Organizacija in management informacijskih sistemov PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH

More information

Učni komplet za Raspberry Pi Conrad Components

Učni komplet za Raspberry Pi Conrad Components SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 12 25 953 www.conrad.si NAVODILA ZA UPORABO Učni komplet za Raspberry Pi Conrad Components Kataloška št.: 12 25 953 Kazalo 1 Od namestitve operacijskega sistema

More information

Excel. Matjaž Željko

Excel. Matjaž Željko Excel Matjaž Željko Elektronska preglednica Excel Excel je zmogljiv kalkulator. Omogoča izdelavo grafikonov statistično analizo podatkov lepo oblikovanje poročila za natis Podatke predstavljamo tabelarično,

More information

PRESENEČENJA V FIZIKI: VRTAVKE. Mitja Rosina Fakulteta za matematiko in fiziko Ljubljana, 12.marca 2010

PRESENEČENJA V FIZIKI: VRTAVKE. Mitja Rosina Fakulteta za matematiko in fiziko Ljubljana, 12.marca 2010 PRESENEČENJA V FIZIKI: VRTAVKE Mitja Rosina Fakulteta za matematiko in fiziko Ljubljana, 12.marca 2010 1. Vrtavka na prostem 2. Vrtavka na mizi: vrtenje, precesija, nutacija 3. Vrtavka na mizi: trenje,

More information

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani JEDRSKA URA JAN JURKOVIČ Fakulteta za matematiko in fiziko Univerza v Ljubljani Natančnost časa postaja vse bolj uporabna in pomembna, zato se rojevajo novi načini merjenja časa. Do danes najbolj natančnih

More information

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK POVZETEK. Namen tega dela je prikazati osnove razlik, ki lahko nastanejo pri interpretaciji

More information

Sekvenčna preklopna vezja

Sekvenčna preklopna vezja - Sekvenčna preklopna vezja (delovna verzija 5..27) Prosojnica št. 7- Primer vezja s povratno povezavo Osnovni pomnilni element je izveden s kaskadno vezavo invertorjev Osnovni element: invertor (INV)

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Ekstremne porazdelitve za odvisne spremenljivke (Extremal Distributions for Dependent Variables)

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO Ljubljana, 2013 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA ODDELEK ZA MATEMATIKO IN RAČUNALNIŠTVO SAŠO ZUPANEC Mentor:

More information

Mathematica PRI MATEMATIKI V 1. IN 2. LETNIKU SPLOŠNEGA GIMNAZIJSKEGA PROGRAMA

Mathematica PRI MATEMATIKI V 1. IN 2. LETNIKU SPLOŠNEGA GIMNAZIJSKEGA PROGRAMA »Mladi za napredek Maribora 2013«30. srečanje Mathematica PRI MATEMATIKI V 1. IN 2. LETNIKU SPLOŠNEGA GIMNAZIJSKEGA PROGRAMA Raziskovalno področje: matematika Raziskovalna naloga Maribor, februar 2013

More information

SVM = Support Vector Machine = Metoda podpornih vektorjev

SVM = Support Vector Machine = Metoda podpornih vektorjev Uvod 2/60 SVM = Support Vector Machine = Metoda podpornih vektorjev Vapnik in Lerner 1963 (generalized portrait) jedra: Aronszajn 1950; Aizerman 1964; Wahba 1990, Poggio in Girosi 1990 Boser, Guyon in

More information

Obisk iz rezultatov iskanj na iskalniku Google

Obisk iz rezultatov iskanj na iskalniku Google Univerza v Ljubljani Fakulteta za računalništvo in informatiko Uroš Okorn Obisk iz rezultatov iskanj na iskalniku Google DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

More information

1 Luna kot uniformni disk

1 Luna kot uniformni disk 1 Luna kot uniformni disk Temperatura lune se spreminja po površini diska v širokem razponu, ampak lahko luno prikažemo kot uniformni disk z povprečno temperaturo osvetlitve (brightness temperature) izraženo

More information

IZPELJANKE ALGORITMA LZW

IZPELJANKE ALGORITMA LZW Jure Sreš IZPELJKE LGORITM LZW Diplomsko delo Maribor, september 2016 IZPELJKE LGORITM LZW Diplomsko delo Študent(ka): Jure Sreš Študijski program: Računalništvo in informacijske tehnologije (U) Smer:

More information

Solutions. Name and surname: Instructions

Solutions. Name and surname: Instructions Uiversity of Ljubljaa, Faculty of Ecoomics Quatitative fiace ad actuarial sciece Probability ad statistics Writte examiatio September 4 th, 217 Name ad surame: Istructios Read the problems carefull before

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work Predmet: Course title: UČNI NAČRT PREDMETA / COURSE SYLLABUS Statistika Statistics Študijski program in stopnja Study programme and level Univerzitetni študijski program Matematika First cycle academic

More information

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Gorazd Kovačič. Avtomatsko vizualno testiranje spletnih strani

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Gorazd Kovačič. Avtomatsko vizualno testiranje spletnih strani UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Gorazd Kovačič Avtomatsko vizualno testiranje spletnih strani DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: izr. prof. dr. Viljan Mahnič

More information

Usmerjenost v samopreseganje in dosežke vodenje samega sebe

Usmerjenost v samopreseganje in dosežke vodenje samega sebe Usmerjenost v samopreseganje in dosežke vodenje samega sebe Petra Povše* Fakulteta za organizacijske študije v Novem mestu, Novi trg 5, 8000 Novo mesto, Slovenija petra.koprivec@gmail.com Povzetek: Raziskovalno

More information

2002.X.1 Mobilni milijonar

2002.X.1 Mobilni milijonar 2002.X.1 2] 1 Dodatne naloge Včasih se ob pripravljanju nalog za tekmovanje nabere več nalog, kot jih tisto leto potrebujemo. Nekaj nalog torej ostane neuporabljenih, kar pa še ne pomeni, da so slabe ali

More information

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 12 (1984/1985) Številka 3 Strani 110 119 Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI Ključne besede: matematika.

More information

Osnovna statistična analiza v R-ju

Osnovna statistična analiza v R-ju y 100 200 300 400 500 600 700 5 10 15 20 x Osnovna statistična analiza v R-ju Aleš Žiberna Osnovna statistična analiza v R-ju Aleš Žiberna 12. julij 2016 CIP - Kataložni zapis o publikaciji Narodna in

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Inženirski pristop k načrtovanju in implementaciji reševalca Sudoku za mobilne naprave (Engineering

More information

MPP5800 series - PANEL MOUNT PRINTERS. Options

MPP5800 series - PANEL MOUNT PRINTERS. Options series - PANEL MOUNT PRINTERS MPP5810 MPP5820 Introduction 5-8Vdc, 4A peak 5-8Vdc, 2A peak 10-35Vdc Features Easy load paper feature High resolution thermal printing 5-8Vdc standard, 10-35Vdc / low power

More information

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL original scientific article UDC: 796.4 received: 2011-05-03 MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL Pietro Enrico DI PRAMPERO University of Udine, Department of Biomedical

More information

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA LUKA VIKTOR ROGAČ KONČNI AVTOMATI DIPLOMSKO DELO LJUBLJANA, 2015 UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Univerzitetni študijski program 1. stopnje: Dvopredmetni

More information

21.1 Scilab Brownov model 468 PRILOGA. By: Dejan Dragan [80] // brown.m =========================== function brown(d,alfa) fakt = 5;

21.1 Scilab Brownov model 468 PRILOGA. By: Dejan Dragan [80] // brown.m =========================== function brown(d,alfa) fakt = 5; Poglavje 21 PRILOGA 468 PRILOGA 21.1 Scilab By: Dejan Dragan [80] 21.1.1 Brownov model // brown.m =========================== function brown(d,alfa) fakt = 5; N = length(d); t = [1:1:N]; // izhodi prediktor-filtra

More information

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE Zaključna naloga Uporaba Kalmanovega filtra pri vrednotenju izbranih finančnih instrumentov (Using Kalman filter

More information

VAJE 2: Opisna statistika

VAJE 2: Opisna statistika VAJE : Opisna statistika Na računalniških vajah se za urejanje in prikazovanje statističnih podatkov uporabi statistični programski paket SPSS in podatkovna datoteka podatki.sav. NALOGE: 1. Analiza vzorčnih

More information

APLIKACIJA ZA DELO Z GRAFI

APLIKACIJA ZA DELO Z GRAFI UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Študijski program: MATEMATIKA IN RAČUNALNIŠTVO APLIKACIJA ZA DELO Z GRAFI DIPLOMSKO DELO Mentor: doc. dr. Primož Šparl Kandidat: Luka Jurković Somentor: asist.

More information