{"id":30,"date":"2012-11-16T10:15:06","date_gmt":"2012-11-16T08:15:06","guid":{"rendered":"http:\/\/petski.tainas.ee\/?page_id=30"},"modified":"2015-09-23T09:33:47","modified_gmt":"2015-09-23T07:33:47","slug":"tarkvara","status":"publish","type":"page","link":"http:\/\/priit.ati.ttu.ee\/?page_id=30","title":{"rendered":"Tarkvara"},"content":{"rendered":"<h3 style=\"text-align: justify;\">Programmeerimine<\/h3>\n<p style=\"text-align: justify;\">Mikrokontrolleri programmeerimiseks on kasutusel Microchipi poolt loodud programmeerimisekeskkond <a href=\"http:\/\/www.microchip.com\" target=\"_blank\">MPLAB X<\/a>. Keskkonna k\u00e4ivitamiseks tuleb konsooli sisestada k\u00e4sk <em>mplab_ide<\/em>, misj\u00e4rel keskkond k\u00e4ivitub.<\/p>\n<h2 style=\"text-align: justify;\">Projekti loomine<\/h2>\n<p style=\"text-align: justify;\">Selleks, et alustada kontrolleri programmeerimisega, tuleb esmalt tekitada uus projekt ning see seadistada. Selleks valida <em>File<\/em> men\u00fc\u00fcst valik <em>New Project<\/em>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/0a.png\" alt=\"Uus projekt\" width=\"312\" height=\"477\" \/><\/p>\n<p style=\"text-align: justify;\">Avanenud aknast valida kategooria <em>Microchip Embedded <\/em>ning projekt <em>Standalone project<\/em>. Seej\u00e4rel vajutada <em>Next.<\/em> <br style=\"page-break-before: always;\" clear=\"all\" \/> <img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/1.png\" alt=\"Standalone projekt\" width=\"837\" height=\"518\" \/><\/p>\n<p style=\"text-align: justify;\">J\u00e4rgnevalt tuleb loetelust valida sobiv kontroller, antud juhul on see <strong>PIC16F690<\/strong>. Kui \u00f5ige kontroller valitud vajutada <em>Next.<\/em><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/2.png\" alt=\"Kontrolleri valik\" width=\"837\" height=\"518\" \/><\/p>\n<p style=\"text-align: justify;\"><em>Select Header <\/em>sammust tuleb midagi valimata vajutada <em>Next.<\/em><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/3.png\" alt=\"Header\" width=\"837\" height=\"518\" \/><\/p>\n<p style=\"text-align: justify;\">Edasi tuleb <em>Select Tool <\/em>valik, kus jaotise <em>Hardware Tools<\/em> alt teha aktiivseks <strong><em>PICkit2<\/em><\/strong>. Seej\u00e4rel vajutada <em>Next<\/em>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/4.png\" alt=\"Riistvara vahendid\" width=\"837\" height=\"518\" \/><\/p>\n<p style=\"text-align: justify;\"><em>Select Compiler<\/em> sammus tuleb avada <strong><em>HI-TECH PICC<\/em><\/strong> rippmen\u00fc\u00fc ning m\u00e4rgistada vastav kompilaator. Edasi vajutada <em>Next<\/em>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/5.png\" alt=\"Kompilaatori valik\" width=\"837\" height=\"518\" \/><\/p>\n<p style=\"text-align: justify;\">&lt;p &gt;Viimaseks tuleb anda projektile sobiv nimi ning m\u00e4\u00e4rata projekti asukoht. Samuti \u00e4ra m\u00e4rkida <em>Set as main project <\/em>ees olev kastike. Seej\u00e4rel vajutada <em>Finish<\/em>. &lt;p &gt;<img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/6.png\" alt=\"Projekti l\u00f5petamine\" width=\"837\" height=\"518\" \/><\/p>\n<h2 style=\"text-align: justify;\">Projekti failide lisamine<\/h2>\n<p style=\"text-align: justify;\">Kui projekt on loodud tuleb projektile lisada faile. Failide tekitamiseks on kaks v\u00f5imalust. Esiteks v\u00f5ib luua uue faili, mis t\u00e4hendab, et kogu programmeerimine tuleb teha kasutajal. Teisalt v\u00f5ib projekti lisada juba olemasolevaid faile, mis h\u00f5lbustavad programmeerimist. Antud juhul kasutada<br \/>\nteist valikut, ning lisada projektile juba olemasolevaid faile.<\/p>\n<p style=\"text-align: justify;\">Kuna mikrokontrolleri seadistuse \u00f5ppimine v\u00f5taks \u00fcksjagu aega, on piisav seadistus lisatavates failides juba tehtud. Samuti on loodud funktsioonid info v\u00e4ljastamiseks 7-segmendi indikaatorile ning LEDidele. Kasutaja \u00fclesandeks on koostada algoritm ning programmeerida vastav kood C keeles.<\/p>\n<p style=\"text-align: justify;\">Vajalikud failid saad <a href=\"http:\/\/www.tud.ttu.ee\/~t061697\/PICkit2%20kood\/\" target=\"_blank\">SIIT<\/a>. Alla tuleb t\u00f5mmata k\u00f5ik failid (<em>main.c, config.c <\/em>ning<em> config.h<\/em>) ning paigutada projekti peakataloogi. Kui failid on alla t\u00f5mmatud, tuleb nad lisada projektile. Selleks teha parem hiirekl\u00f5ps projekti kaustal <em>Source Files<\/em> ning avanenud men\u00fc\u00fcst valida <em>Add Existing Item\u2026<\/em>.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/8.png\" alt=\"Failide lisamine\" width=\"472\" height=\"423\" \/><\/p>\n<p style=\"text-align: justify;\">Projekti kausta <em>Source Files<\/em> tuleb lisada <em>main.c <\/em>ning <em>config.c<\/em> failid. Fail <em>config.h<\/em> on p\u00e4isefail ning<br \/>\nseet\u00f5ttu tuleks paigutada projekti kataloogi <em>Header Files<\/em> alla.<br clear=\"allstyle='page-break-before:always'\" \/><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/9.png\" alt=\"Failid paigas\" width=\"438\" height=\"351\" \/><\/p>\n<h2 style=\"text-align: justify;\">Programmi koostamine<\/h2>\n<h3 style=\"text-align: justify;\">Faili <em>main.c<\/em> kasutamine<\/h3>\n<p style=\"text-align: justify;\">Programmeerimiseks tuleb avada fail <em>main.c<\/em>. Nimetatud fail sisaldab endas juba programmeerimiseks vajaminevaid p\u00f5hiteeke. Samuti on v\u00e4lja kutsutud mikrokontrolleri PIC16F690 seadistuseks loodud funktsioon <em>configuration()<\/em>. Projekti lisatud failide <em>config.h<\/em> ning <em>config.c<\/em> muutmine programmeerimisel vajalik ei ole, kogu t\u00f6\u00f6 toimub failis <em>main.c<\/em>.<\/p>\n<p style=\"text-align: justify;\">On oluline, et funktsioon <em>configuration()<\/em> oleks v\u00e4lja kutsutud <em>main<\/em> funktsioonis esimesena!<\/p>\n<p style=\"text-align: justify;\">Kasutaja programm kirjutatakse <em>configuration();<\/em> funktsiooni ning <em>return 0;<\/em> vahele. Olgugi, et tegu on mikrokontrolleri programmeerimisega, v\u00f5imaldab kompilaator kasutada k\u00f5ik tuntud C keele konstruktsioone. M\u00e4rkusena tasub meeles pidada, et mikrokontroller t\u00e4idab koodi ainult \u00fche korra. Seet\u00f5ttu on etteruttavalt lisatud koodirida <em>while(1){}<\/em>, mis t\u00e4hendab, et tegu on l\u00f5pmatu ts\u00fckliga. Programmeerides tuleks programm koostada nii, et programmi t\u00e4idesaatev osa paigutatakse eelnimetatud ts\u00fcklisse.<\/p>\n<p style=\"text-align: justify;\">Mikrokontrolleri taktigeneraator t\u00f6\u00f6tab sagedusel 4MHz. Antud sagedus on liiga k\u00f5rge, et lugeda kiiresti muutuvaid v\u00e4\u00e4rtusi v\u00e4ljunditel. Selleks aga, et seda siiski teha on programmeeritud vastavad viited nimega <em>d<\/em><em>elay_100ms<\/em> ja <em>delay_500ms<\/em> .<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/10a.png\" alt=\"Viited\" width=\"631\" height=\"517\" \/><\/p>\n<h3 style=\"text-align: justify;\">Funktsioonide, globaalmuutujate ning makrode kasutamine<\/h3>\n<p style=\"text-align: justify;\">Mikrokontrolleri \u00fclesanne on realiseerida juhtimise algoritme. Juhtimisel peaks olema teada mida juhitakse, kuidas juhitakse ning mille abil. Lihtne n\u00e4ide on j\u00e4rgmine: surunupu abil pannakse stardikompletil p\u00f5lema LED, kasutades PIC16F690 mikrokontrollerit. Sellel juhul juhitakse LEDi, selleks rakendatakse mikrokontrollerit ning juhtimiseks kasutatakse surunuppu. Eelnev kirjeldus on suurep\u00e4rane algoritmi m\u00f5istmiseks, kuid kas ka selle programmeerimiseks? Ei.<\/p>\n<p style=\"text-align: justify;\">Riistvara komponentide programseks kasutamiseks tuleb vastavad sisendid ja v\u00e4ljundid eelnevalt defineerida. Eelnevalt oli juttu viite tekitamisest, kasutades k\u00e4sku <em>delay_100ms.<\/em> Antud juhul on tegemist vaid makroga, mis realiseerib kindla pikkusega ts\u00fckli. Selleks, et mikrokontrolleri nuppude ja l\u00fclitite kasutamine selgem oleks on loodud mitmeid makrosid. Fail <em>config.h<\/em> sisaldab k\u00f5iki kasutatavate sisendite ning v\u00e4ljundite definitsioone (ehk makrosid) ning failis <em>config.c<\/em> on nad implementeeritud. Allj\u00e4rgnevalt on vastavad definitsioonid v\u00e4lja toodud ning lahti seletatud. Sisendid on m\u00e4rgitud <span style=\"color: #339966;\">rohelisega<\/span> ning v\u00e4ljundid <span style=\"color: #3366ff;\">sinisega<\/span>.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<caption>Tabel 1. Sisendite\/v\u00e4ljundite definitsioonid<\/caption>\n<tbody>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-bottom: solid black 2.25pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong>Definitsioon<\/strong><\/p>\n<\/td>\n<td style=\"border-top: solid black 1.0pt; border-left: none; border-bottom: solid black 2.25pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong>Selgitus<\/strong><\/p>\n<\/td>\n<td style=\"border-top: solid black 1.0pt; border-left: none; border-bottom: solid black 2.25pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong>Definitsioon<\/strong><\/p>\n<\/td>\n<td style=\"border-top: solid black 1.0pt; border-left: none; border-bottom: solid black 2.25pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong>Selgitus<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> ON<\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Sissel\u00fclitatud<br \/>\nolek<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> OFF<\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">V\u00e4ljal\u00fclitatud<br \/>\nolek<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">SER<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">7-segmendi<br \/>\nindikaatori andmev\u00e4ljund<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">SCLK<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">7-segmendi<br \/>\nindikaatori s\u00fcsteemi takteerimis v\u00e4ljund<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">RCLK<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">7-segmendi<br \/>\nindikaatori andmev\u00e4ljastus takteerimis v\u00e4ljund<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">DS4<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">LED DS4<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">DS3<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">LED DS3<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">DS2<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">LED DS2<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #0070c0;\">DS1<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">LED DS1<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP1<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Esimene<br \/>\nDIP l\u00fcliti<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP2<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Teine DIP<br \/>\nl\u00fcliti<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP3<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Kolmas DIP<br \/>\nl\u00fcliti<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP4<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Neljas DIP<br \/>\nl\u00fcliti<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP5<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Viies DIP<br \/>\nl\u00fcliti<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP6<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Kuues DIP<br \/>\nl\u00fcliti<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP7<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Seitsmes<br \/>\nDIP l\u00fcliti<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">DIP8<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Kaheksas<br \/>\nDIP l\u00fcliti<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">BTN<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; background: silver; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Surunupp<br \/>\nDIP l\u00fclitite all<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 20.7pt;\">\n<td style=\"border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">SW1<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Surunupp<br \/>\nSW1 (antud hetkel disfunktsionaalne)<\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\"><strong> <span style=\"color: #00b050;\">RP1<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; height: 20.7pt;\" valign=\"top\">\n<p style=\"margin-bottom: .0001pt;\">Potentsiomeeter<br \/>\nRP1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">\u00dclalkirjeldatud surunupu abil LEDi sissel\u00fclitamise vastav koodin\u00e4ide on toodud j\u00e4rgnevalt. Sisuline kood on pandud l\u00f5pmatusse ts\u00fcklisse. Algoritm on realiseeritud kasutades tingimuslauset. Kui muutuja <strong><span style=\"color: #00b050;\">BTN<\/span><\/strong> on olekus <strong>ON <\/strong>ehk alla vajutatud, LED <strong><span style=\"color: #0070c0;\">DS1<\/span><\/strong> p\u00f5leb. Kui <strong><span style=\"color: #00b050;\">BTN<\/span><\/strong> on olekus <strong>OFF<\/strong>, siis on LED <strong><span style=\"color: #0070c0;\">DS1<\/span><\/strong>kustunud. Katseta koodi ka ise!<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/11a.png\" alt=\"Nupp ja LED\" width=\"628\" height=\"504\" \/><\/p>\n<p style=\"text-align: justify;\">Nagu eelnevast n\u00e4itest selgus on nuppude ning LEDide kasutamine suhteliselt lihtne. Neil on vaid kaks olekut: sees (<strong>ON<\/strong>) ja v\u00e4ljas (<strong>OFF<\/strong><em>)<\/em>. Seevastu 7-segmendi indikaatori kasutamine enam nii h\u00f5lbus ei ole. Lisaks k\u00f5igele on failis <em>config.h<\/em> kirjeldatud ka funktsioonide protot\u00fc\u00fcbid ning globaalsed muutujad. 7-segmendi indikaatori kasutamiseks l\u00e4heb vaja nii globaalseid muutujaid kui ka funktsioone. Lisaks on loodud funktsioon LEDidele v\u00e4ljastamiseks.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/12.png\" alt=\"Funktsioonide protot\u00fc\u00fcbid ja globaalsed muutujad\" width=\"465\" height=\"240\" \/><\/p>\n<p style=\"text-align: justify;\">Selleks, et \u00fclaltoodud programmikood arusaamatuks ei j\u00e4\u00e4ks on loodud allj\u00e4rgnev tabel.<\/p>\n<table style=\"border: solid black 1.0pt;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<caption>Tabel 2. Funktsioonide seletus<\/caption>\n<tbody>\n<tr>\n<th style=\"border: solid black 1.0pt;\">Funktsioon<\/th>\n<th style=\"border: solid black 1.0pt;\">Seletus<\/th>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">configuration(void)<\/td>\n<td style=\"border: solid black 1.0pt;\">Kohustuslik mikrokontrolleri algseadete funktsioon<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">led_out(short leds)<\/td>\n<td style=\"border: solid black 1.0pt;\">LEDide v\u00e4ljastus funktsioon, mille sisendiks on parameeter leds, t\u00fc\u00fcbist short.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">segm_out(void)<\/td>\n<td style=\"border: solid black 1.0pt;\">7-segmendi indikaatori v\u00e4ljastusfunktsioon (lihtne)<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">char_out(void)<\/td>\n<td style=\"border: solid black 1.0pt;\">7-segmendi indikaatori v\u00e4ljastusfunktsioon (keeruline)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">7-segmendi indikaatori kasutamiseks tuleb kasutada funktsiooni segm_out(void). Selleks tuleb esmalt anda ette segmentidele soovitud v\u00e4\u00e4rtused. V\u00e4\u00e4rtuste andmiseks on m\u00f5eldud kolm muutujat: <em>segm_sign0, segm_sign1 <\/em>ning<em> segm_sign2<\/em><em>,<\/em> nagu on kirjas globaalsetes muutujates. Vastavalt allolevale joonisele on segmentide nimed j\u00e4rjestatud vasakult paremale. Segmentidele saab anda v\u00e4\u00e4rtusi nii k\u00fcmnend arvuna (segm_sign0 = 10;), kuueteistk\u00fcmnend arvuna (segm_sign0 = 0x0A;) kui ka kahend arvuna (segm_sign0 = 0b1010;). Kui vastava segmendi\/segmentide v\u00e4\u00e4rtused on paika pandud tuleb v\u00e4lja kutsuda <em>char_out();<\/em> funktsioon,<br \/>\nmis v\u00e4ljastab v\u00e4\u00e4rtused segmentidele. Segmendi punkti kasutamiseks tuleb vastavale segmendi punkti muutujale (<em>segm_dot0, segm_dot1, segm_dot2)<\/em> anda t\u00f5ev\u00e4\u00e4rtus (<strong>ON\/OFF<em>)<\/em><\/strong>.<\/p>\n<p><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/14.png\" alt=\"Segmendid\" width=\"349\" height=\"266\" \/><\/p>\n<p style=\"text-align: justify;\">Lisaks 7-segmendi indikaatorile v\u00e4\u00e4rtuste v\u00e4ljastamiseks on ka funktsioon v\u00e4\u00e4rtuste v\u00e4ljastamiseks LEDidele. Funktsioon <em>led_out()<\/em> on m\u00f5eldud k\u00fcmnend arvude v\u00e4ljastamiseks LEDidele kahend koodina. Funktsioonile antakse vastav v\u00e4\u00e4rtus ette parameetrina. N\u00e4iteks <em>led_out(10);<\/em>.<\/p>\n<h3 style=\"text-align: justify;\">N\u00e4iteprogramm<\/h3>\n<p style=\"text-align: justify;\">Selleks, et m\u00f5ista kasutatavaid funktsioone ning stardikomplekti komponente paremini on koostatud j\u00e4rgnev n\u00e4iteprogramm. Programm v\u00e4ljastab LEDidele summa, mille moodustavad <strong><span style=\"color: #00b050;\">DIP1<\/span> + <span style=\"color: #00b050;\">DIP2<\/span><\/strong> + <strong><span style=\"color: #00b050;\">DIP3<\/span> + <span style=\"color: #00b050;\">DIP4 <\/span>+ <span style=\"color: #00b050;\">DIP5<\/span><\/strong> + <strong><span style=\"color: #00b050;\">BTN<\/span><\/strong>. 7-segmendi punkti panevad vastavalt paika <strong><span style=\"color: #00b050;\">DIP6<\/span><\/strong>, <strong><span style=\"color: #00b050;\">DIP7<\/span><\/strong> ja <strong><span style=\"color: #00b050;\">DIP8<\/span><\/strong> ning segmentidele antakse v\u00e4\u00e4rtused A, B ja C. Funktsioonide paremaks m\u00f5istmiseks aitab ka nende koodi uurimine.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/15a.png\" alt=\"N\u00e4iteprogramm\" width=\"588\" height=\"514\" \/><\/p>\n<h3 style=\"text-align: justify;\">Spetsiaalsed s\u00fcmbolid<\/h3>\n<p style=\"text-align: justify;\">Selleks, et v\u00e4ljastada 7-segmendi indikaatorile v\u00e4\u00e4rtusi 0-15 tuleb vastavale segmendile ainult vastav v\u00e4\u00e4rtus ette anda. Mis teha aga siis, kui segment ei peaks \u00fcldse p\u00f5lema v\u00f5i tahetakse segmendile anda t\u00e4he v\u00e4\u00e4rtust L. K\u00f5ik segmentidele antavad v\u00e4\u00e4rtused on kirjutatud p\u00fcsim\u00e4llu 8-bitiste koodidena. Antud hetkel on lisaks v\u00e4\u00e4rtustele 0-15 sinna lisatud veel j\u00e4rgmised v\u00e4\u00e4rtused:<\/p>\n<table style=\"border: solid black 1.0pt;\" border=\"1\">\n<caption>Tabel 3. Spetsiaalsed s\u00fcmbolid<\/caption>\n<tbody>\n<tr>\n<th style=\"border: solid black 1.0pt;\">S\u00fcmbol<\/th>\n<th style=\"border: solid black 1.0pt;\">S\u00fcmboli v\u00e4ljakutse v\u00e4\u00e4rtus<\/th>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">NULL (ei p\u00f5le)<\/td>\n<td style=\"border: solid black 1.0pt;\">16<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">MIINUS<\/td>\n<td style=\"border: solid black 1.0pt;\">17<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">FULL (k\u00f5ik p\u00f5levad)<\/td>\n<td style=\"border: solid black 1.0pt;\">18<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">H<\/td>\n<td style=\"border: solid black 1.0pt;\">19<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">L<\/td>\n<td style=\"border: solid black 1.0pt;\">20<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">P<\/td>\n<td style=\"border: solid black 1.0pt;\">21<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">I<\/td>\n<td style=\"border: solid black 1.0pt;\">22<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">U<\/td>\n<td style=\"border: solid black 1.0pt;\">23<\/td>\n<\/tr>\n<tr>\n<td style=\"border: solid black 1.0pt;\">N<\/td>\n<td style=\"border: solid black 1.0pt;\">24<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">N\u00e4itena tahame anda segmentidele v\u00e4\u00e4rtust NULL P I .<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/17.png\" alt=\"PI\" width=\"160\" height=\"80\" \/><\/p>\n<h2 style=\"text-align: justify;\">Programmi sisestamine mikrokontrollerisse<\/h2>\n<p style=\"text-align: justify;\">Kui programm on koostatud tuleb ta kompileerida. Selleks tuleks valida t\u00f6\u00f6riistaribalt v\u00f5i <em>Run<\/em> men\u00fc\u00fcst nupp <em>Clean and Build Main Project<\/em>. Kompileerimisel n\u00e4itab konsool programmis esinevaid t\u00f5rkeid, samuti on v\u00f5imalik j\u00e4lgida mikrokontrolleri m\u00e4lukasutust.<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #ff0000;\">Enne programmi mikrokontrollerisse sisestamist peab veenduma, et <strong>DIP2<\/strong> l\u00fcliti oleks <strong><em>OFF<\/em><\/strong> olekus. Vastasel korral annab programm veateate ning programmeerimine ei \u00f5nnestu.<\/span><\/p>\n<p style=\"text-align: justify;\">Korrektselt kompileerinud programmi mikrokontrollerisse sisestamiseks valida t\u00f6\u00f6riistaribalt <em>Make and Program Device Main Project <\/em>v\u00f5i\u00a0<em>Run<\/em> men\u00fc\u00fcst <em>Run Main Project<\/em>. Olenevalt programmi mahukusest v\u00f5tab programmeerimine ligikaudu 1-5 sekundit aega. Programmeerimisel hakkab programmaatoril p\u00f5lema punane tuli, mis t\u00e4histab m\u00f5istet <em>Busy.<\/em> Kui see on kustunud, on kontroller programmeeritud.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"Http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2012\/11\/16.png\" alt=\"Run men\u00fc\u00fc\" width=\"298\" height=\"347\" \/><\/p>\n<p style=\"text-align: justify;\">7-segmendi indikaatori intensiivsel kasutamisel v\u00f5ib stardikomplektil asuv pingeregulaator tugevalt kuumeneda. Vastaval korral veenduda, et seadme radiaator<br \/>\n(jahutuselement) oleks vabalthingav (ei puutuks vastu teisi komponente).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programmeerimine Mikrokontrolleri programmeerimiseks on kasutusel Microchipi poolt loodud programmeerimisekeskkond MPLAB X. Keskkonna k\u00e4ivitamiseks tuleb konsooli sisestada k\u00e4sk mplab_ide, misj\u00e4rel keskkond k\u00e4ivitub. Projekti loomine Selleks, et alustada kontrolleri programmeerimisega, tuleb esmalt tekitada uus projekt ning see seadistada. Selleks valida File men\u00fc\u00fcst valik New Project. Avanenud aknast valida kategooria Microchip Embedded ning projekt Standalone project. Seej\u00e4rel vajutada [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":12,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/30"}],"collection":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30"}],"version-history":[{"count":40,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/30\/revisions"}],"predecessor-version":[{"id":1677,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/30\/revisions\/1677"}],"up":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/12"}],"wp:attachment":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}