Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

TUTORIJAL: PicBasic Pro 3 i PIC16F1827

[es] :: Elektronika :: Mikrokontroleri :: TUTORIJAL: PicBasic Pro 3 i PIC16F1827
(TOP topic, by veselinovic)
Strane: 1 2 3 4 5

[ Pregleda: 54260 | Odgovora: 88 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182706.10.2012. u 22:00 - pre 140 meseci
Da se nadovežem na ovo lepo pisanje vezano za ADC.

Elem, Siniša je uzeo za primer merenje napona na laboratorijskom ispravljaču uz pomoć 10 bitnog ADC-a. Malko je nezgodno za "matematiku" 0,029V po koraku, mnogo je lepše meriti maksimalni napon koji zadovoljava n x 1024, što bi u ovom slučaju bilo 30.72V
Proračuna se razdelnik napona tako da na pri ulaznih 30.72V ulaz na ADC pin-u bude tačno Vdd (ukoliko je uzet Vdd za Vref), iščitati ADC sukcesivno 3 puta i reziltat će sigurno biti celobrojna vrednost (WORD) veličine, što je izuzetno lako za prikazivanje na LCD-u.

Primer koda, kada za to dođe vreme, u Proton-u.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182710.10.2012. u 22:27 - pre 140 meseci
Referentni napon
--------------------
Da bi ADC znao kolika je u stvari vrednost napona koji meri, tj. kako da predstavi izmereni napon, neophodno je da ima neki drugi napon sa kojim će da vrši poredjenje, a taj napon se zove referentni napon i veoma je bitno da on bude što stabilniji. Kada je napon koji se meri jednak referentnom tada je rezultat maksimalan, tj. svi bitovi su postavljeni na 1, što znači da mereni napon ne sme da predje referentni jer ćemo imati pogrešan rezultat. Postoji i mogućnost da je napon koji merimo mnogo manji od referentnog pa ćemo da imamo mali opseg bez obzira na broj bitova samog ADC-a. Iz ovoga proizilazi da je najbolje kada je maksimalna vrednost merenog napona jednaka ili nešto malo niža od referentnog koji je obično jednak naponu napajanja ili nekom drugom iz spoljnog ili unutrašnjeg izvora. Često su to vrednosti jednake stepenu broja 2, npr. 1,024V, 2,048V ili 4,096V, mada može da bude bilo koje vrednosti jer kontroler uz malo matematike sve to lako preračuna, ali je uglavnom praktičnije ako su u odnosu sa stepenom broja 2.

Medjutim, retko kada se napon koji merimo poklapa sa referentnim i zato ga je potrebno dovesti na odgovarajući nivo. Kada je maksimalno očekivani mereni napon veći od referentnog, za njegovo smanjenje se veoma često koristi otpornički razdelnik napona, a kada je manji, za povećanje se koristi operacioni pojačavač.


[Ovu poruku je menjao rsinisa dana 10.10.2012. u 23:46 GMT+1]
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182713.10.2012. u 01:47 - pre 140 meseci
Primer upotrebe ADC-a
-------------------------
Pošto je ADC relativno komplikovan za početnike, objasniću detaljno kako se koristi na primeru merenja napona od maksimalnih 10V, sa ADC-om od 10 bitova, i referentnim napon od 5V.
Da bi mereni napon doveli na nivo referentnog upotrebićemo razdelnik napona sa dva otpornika od po 10K. Za one koje ne znaju, otpornički razdelnik napona je ovo:



U1 je ulazni (veći) napon, U2 je izlazni (onaj koji vodimo na ADC), a odnos otpornika odredjuje odnos izmedju ulaznog i izlaznog napona. Formula glasi:

U2 = U1 * R2 / (R1 + R2)

Da vidimo sada kako da iz rezultata koji dobijemo na osnovu merenja U2, izračunamo koliki je zaista napon U1 u voltima.
Kada je U1 tačno 10V, U2 će biti 5V što je jednako referentnom naponu, pa će rezultat imati maksimalnu vrednost, tj %1111111111 ili 1023 dekadno. Vidimo da dobijeni rezultat moramo da podelimo sa 102,3 da bi dobili 10V, tj. da bi izračunali U1. Iako PBP ne podržava decimalne brojeve, ipak je ovde reč o mikrokontroleru i nije problem napraviti rutinu za decimalno deljenje i doći do rezultata, ali bi ta rutina bila velika i oduzela bi prilično vremena za njeno izvršavanje. Zato ćemo da pribegnemo jednom triku: ako već nećemo da delimo sa decimalama, onda ćemo da prilagodimo U2 tako da rezultat podelimo sa celim brojem, a u ovom slučaju bi bilo zgodno da to bude 100. To znači da moramo da promenimo odnos R1 i R2 tako da pri U1 od 10V, rezultat AD konverzije bude tačno 1000, pa ćemo da izračunamo koliko tačno treba da bude napon U2.

Postavićemo proporciju:
1023 : 5 = 1000 : U2
U2 = 5 * 1000 / 1023
U2 = 4,887 V

što znači da U2 mora da bude 4,887V kada je U1 = 10V. Otpornik R1 nećemo da menjamo tako da nam još ostaje da izračunamo R2 koji se, kada se izvuče iz gornje formule, računa ovako:

R2 = U2 * R1 / (U1 - U2)

Kada zamenimo vrednosti dobijemo da nam je potreban otpornik od 9,559 K. Pošto ta vrednost ne postoji, R2 ćemo da zamenimo trimer potenciometrom pa će naš razdelnik da izgleda ovako:



Vrednost za R2 ćemo najlakše da podesimo tako što ćemo da napišemo naš program koji vrednost dobijenu konverzijom deli sa 100 i prikazuje na displeju, podesimo U1 na 10 volti i podešavamo trimer R2 dok na displeju ne dobijemo prikaz od 10V.

Već smo rekli da PBP ne poznaje decimalne brojeve, što znači da će rezultat da bude celobrojni, bez ijedne decimale, ali pošto već imamo ADC sa dovoljnom rezolucijom, rezultat konverzije možemo da uvećamo 10 puta, tj. u ovom slučaju da podelimo sa 10 umesto sa 100, prikažemo ga na displeju i ispišemo decimalnu tačku izmedju jedinica i desetica; time smo dobili rezultat sa jednom decimalom. Koristan trik, zapamtite ga, trebaće vam.
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182716.10.2012. u 13:16 - pre 140 meseci
U primeru iz prethodnog teksta namerno je na kraju izostavljen jedan detalj zbog testiranja vaše pažnje. Rekli smo da rezultat AD konverzije možemo da podelimo sa 10 i dobijemo jednu decimalu, a iz toga proizilazi da bez ikakvog deljenja rezultata dobijamo praktično dve decimale, s tim što i dalje imamo rezultat u obliku celobrojne vrednosti, a decimalnu tačku ispisujemo izmedju cifara stotica i desetica. Ako ste ovo videli, znači da ste shvatili princip dobijanja decimala pomoću celih brojeva, a ako niste, ne brinite, naučićete.

Brzina konverzije ADC-a
-----------------------------
Proces pretvaranja analogne veličine u digitalnu ima neko vreme trajanja i predstavlja parametar koji se zove brzina konverzije ("sampling rate" na engleskom). Ta brzina se ponekad izražava kao vreme, a ponekad kao frekvenca, a radi se, praktično, o dva obrnuto proporcionalna podatka (frekvenca = 1 / vreme, i obrnuto). Zašto je bitna ta brzina? Kao što smo rekli, analogni signal u svakom trenutku ima neku vrednost koja je, zavisno od signala, podložna promeni. Sa druge strane, digitalni signal je definisan samo u odredjenim trenucima što znači da postoji šansa da je analogni signal promenio vrednost izmedju dve uzastopne konverzije što rezultira netačnom predstavom signala u digitalnom obliku.

Po teoriji, potrebno je da frekvenca konverzije bude bar duplo veća od najveće očekivane frekvnce analognog signala da bi on bio koliko-toliko ispravno prikazan kasnije kroz rekonstrukciju pomoću DA konvertora i filtera. Zato je frekvenca uzorkovanja kod audio signala 44,1 kHz (muzički CD) jer ljudsko uvo čuje, u najboljem slučaju, frekvence do oko 20 kHz.

Medjutim, da bi signal sa velikom sigurnošću bio pretvoren u digitalni, teorija kaže da je potrebno da frekvenca uzorkovanja bude oko 10 puta veća od frekvence analognog signala koji se konvertuje. Na osnovu tog podatka možete, recimo, da uporedite dva digitalna osciloskopa od kojih oba mogu da "vide" signal do 100 Mhz, s tim da je brzina uzorkovanja kod jednog 1 GS/s (čita se "gigasempl u sekundi") i označava jednu milijardu uzoraka u jednoj sekundi, dok je kod drugog 500 MS/s (čita se "megasempl u sekundi") i predstavlja 500 miliona uzoraka u jednoj sekundi. Odmah je jasno da se treba opredeliti za prvi model jer će vernije da prikaže posmatrani signal. Doduše, i dalje postoji mogućnost da se neki kratki "špic" provuče neprimećen, ali to je jednostavno tako kod AD konverzije.

Ako obradjujemo jednosmeran signal, ili neki sa jako sporom promenom, jasno je da brzina konverzije ne predstavlja neku bitnu stvar jer su danas svi AD konvertori praktično prebrzi za taj zadatak. Medjutim, postoji situacija u kojoj bi nam možda veća brzina dobro došla čak i kod signala koji se sporo menja, a to je situacija kada nam je potrebna veoma velika preciznost pa moramo da upotrebimo ADC sa velikom rezolucijom. Pošto je osteljivost takvog ADC-a prilično velika (može da izmeri promenu reda mikrovolti), rezultat izmedju susednih konverzija može da varira zbog smetnji, iako se vrednost signala nije promenila. U tim situacijama se radi uprosečavanje signala tako što se sabere veći broj uzoraka pa se dobijena vrednost podeli sa brojem uzoraka, čime se donekle smanjuje uticaj tih smetnji softverskom metodom (postoje i hardverske upotrebom fitera i sl.).
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182722.10.2012. u 18:53 - pre 139 meseci
Tip izlaza ADC-a
--------------------
Da bi AD konvertor preneo mikrokontroleru vrednost, potrebno je da se poveže sa njim odredjenim brojem pinova. AD konvertori koji imaju više pinova i koji odjednom prenose celu vrednost su kovertori sa paralelnim izlazom; oni imaju za svaki bit rezolucije po jedan pin za podatak. Njihova prednost je što se odjednom prenosi kompletna vrednost, ali taj način povezivanja ima više nedostataka: potreban je veliki broj pinova mikrokontrolera za povezivanje, zatim kod integralnih kola kućište sa puno pinova može da ima veću vrednost nego sam silicijum na kome je izradjen, a i čip sa više pinova zauzima više mesta na štampanoj ploči (što takodje ima svoju cenu). Zato je broj pinova za prenos podataka smanjen na samo dva i napravljen je serijski tip izlaza gde se vrednost prenosi jedan po jedan bit, tj. serijski, s tim da je jedan pin predvidjen za prenos podatka, a drugi za sinhronizacioni takt. Očigledno je da je takav način prenosa sporiji, ali danas su AD konvertori veoma brzi i za većinu primena to ne predstavlja problem.

Ovo važi za slučaj kada koristimo spoljni AD konvertor. Obzirom da PIC koji ćemo da koristimo ima ugradjen ADC i sve potrebne mehanizme za prenos podatka, o ovome ne treba da brinemo, naše je samo da nakon konverzije pročitamo vrednost iz registra koji je konstruktor predvideo za tu namenu i odjednom preuzmemo kompletan rezultat konverzije.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182730.10.2012. u 22:43 - pre 139 meseci
DA konvertor
=========
Ovaj sklop, kao što mu ime kaže, pretvara digitalni signal u analogni. Koristimo ga u dva slučaja: kada je potrebno da pomoću digitalnog signala generišemo neki proizvoljan analogni signal, ili kada hoćemo da vratimo u prvobitni oblik neki analogni signal koji smo prethodno pretvorili u digitalni.

Prvi slučaj je npr. kada hoćemo da generišemo signal odredjenog oblika (npr. sinusni, testerasti ili bilo koji) koji nam je potreban i u tom slučaju možemo da menjamo vrednosti bilo kojim brzinom koja nam odgovara.

Drugi slučaj je kada npr. hoćemo da slušamo muziku sa CD-a. Da bi analogni signal bio vraćen u prvobitan oblik, neophodno je da brzina menjanja stanja bude identična onoj kojom je signal pretvoren u digitalni.
Pošto znamo da je digitalni signal diskretan po vremenu i amplitudi, izlazni signal bi bio stepenast i ni blizu originalnom. Zato DAC izlaz ima neku vrstu filtera koji "pegla" signal kako bi što više ličio na željeni, odn. originalni.


Slika 1




Slika 2


Na prvoj slici sivom bojom je predstavljen originalni analogni signal, a crvenom trenutak konverzije i vrednost digitalnog signala.
Na drugoj slici je prikazan postupak vraćanja digitalnog signala (crvena boja) u analogni (siva boja). Vidi se da je analogni signal "ispeglan" izmedju 2 digitalna kako bi se dobio originalni oblik analognog signala.

Sada se verovatno neko pita zašto bi uopšte pretvarali audio signal u digitalni, pa ga potom opet vraćali u analogni jer u tom procesu dolazi do degradacije signala. Kao prvo, zaista dolazi do degradacije signala, ali one su tako minimalne da to naše uvo ne može da registruje, a i one su izraženije kod visokih frekvenci koje ionako slabije čujemo.
Kao drugo, glavni razlog je očuvanje kvaliteta signala jer se analogni signal deformiše vremenom, reprodukcijom i presnimavanjem, dok sa digitalnim takvih problema maltene nema. Digitalni signal, iako praktično u savršenom obliku za čuvanje i reprodukciju, podložan je jedino deformisanju zbog vremena, a za to je zaslužan kvalitet medijuma na kome je snimljen pa je potrebno presnimavati ga na odredjen broj godina.
Kvalitetni CD-ovi bi trebalo da izdrže bez problema i do 30 godina, ali nemojte da se iznenadite ako ne uspete da pročitate manje kvalitetan disk koji ste narezali pre svega par godina.

Neke od karakteristika DA konvertora su: broj bitova (tj. rezolucija), referentni napon i brzina konverzije.
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182707.11.2012. u 22:20 - pre 139 meseci
Broj bitova
-------------
Kao i kod ADC-a, i ovde imamo broj bitova koji odredjuju rezoluciju DA konvertora; ako je np. broj bitova 8, to znači da DAC na svom izlazu može da proizvede 256 različlitih nivoa signala. Koliko je bitova dovoljno opet zavisi od konkretne primene, ali je bitno da se kod rekonstrukcije digitalnog signala u analogni broj bitova poklapa sa onim kod AD konverzije.

Referentni napon
---------------------
I kod DAC-a nam je potreban refeerntni napon kako bi on na svom izlazu mogao da postavi konkretnu vrednost. Kada su svi bitovi na logičkoj jedinici, izlazni napon je jednak referentnom naponu. Ponekad nam je taj napon dovoljan za dalju obradu i korišćenje, ali je često slučaj da ga treba povećati pa se upotrebljavaju operacioni pojačavači ili gotovi audio-pojačavači za audio tehniku.

Brzina konverzije
--------------------
Kao i kod AD konverzije, pretvaranje digitalnog signala u analogni takodje traje neko vreme pa i ovde imamo taj parametar o kome moramo da vodimo računa pri izboru DA konvertora.
Ako se radi o rekonstrukciji analognog signala, maksimalna brzina DA konvertora mora da bude jednaka ili veća od brzine kojom je analogni signal pretvoren u digitalni (naravno da brzina konverzije mora da bude jednaka brzini kojom je uradjena AD konverzija).

Kada hoćemo da rekonstruišemo neki analogni signal vrlo je jednostavno odabrati DAC sa odgovarajućom brzinom konverzije, ali kada hoćemo da generišemo neki signal, moramo malo da pripazimo na brzinu.
Recimo da hoćemo da generišemo sinusni signal frekvence do 10 kHz. Sledeće što treba da odlučimo je sa koliko uzoraka (segmenata) ćemo da napravimo tu sinusoidu - generalno gledano, važi pravilo "što više, to bolje", a tu dolazimo do ograničenja koje nam nameće brzina DA konvertora. Sa više uzoraka pravimo precizniji signal, medjutim pitanje je koja nam preciznost treba, i treba uzeti u obzir da se signal može popraviti filterima. Pogledajmo sledeću sliku:



Vidimo da je ovde jedna kompletna sinusoida predstavljena sa 32 segmenta pa ako to sada pomnožimo sa frekvencom signala, vidimo da nam je potreban DAC koji može da uradi 320 000 konverzija u sekundi. Ako nemamo tako brzi DA konvertor, moraćemo da smanjimo broj segmenata za jednu kompletnu periodu.
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182708.11.2012. u 23:48 - pre 139 meseci
Operacioni pojačavači
==============
U prethodnim lekcijama pomenuli smo operacioni pojačavač (na srpskom skraćeno "OP", na engleskom "operational amplifier", ili skraćeno "op amp"), pa da vidimo šta je to.
To je sklop koji je spolja gledano veoma jednostavan, sastoji se od 2 ulaza, jednog pozitivnog i jednog negativnog, jednog izlaza i dva izvoda za napajanje. Šematski se prikazuje ovako:



Vidi se da se za napajanje koriste i pozitivan (+Vcc) i negativan napon (-Vcc), ali postoje i oni kojima je za rad dovoljan samo pozitivan napon (-Vcc se vezuje na masu).
Iako jednostavan, sa njime je moguće ostvariti jako puno različitih spojeva kao što su: neinvertujući pojačavač, invertujući pojačavač, integrator, diferencijali pojačavač, sabirač itd. Ovde ćemo samo ukratko da objasnimo njegovu primenu u spoju neinvertujućeg pojačavača jer će nam u praksi uglavnom biti potreban za pojačanje signala malih amplituda. Zove se neinvertujući jer je napon na izlazu istog znaka, tj. polariteta kao i napon na ulazu. Taj spoj izgleda ovako:



Izlazni napon računa se po formuli:
Vout = Vin * (1 + R2/R1)

Ako npr. želimo da AD konvertorom merimo signal maksimalne amplitude 0,5 V pri referentnom naponu od 5V, napravićemo ovaj pojačavač koji će da ima pojačanje od 10, što znači da otpornike odaberemo tako da njihov odnos bude 9. Za konkretne vrednosti treba konsultovati tehničke podatke za upotrebljeni OP.

U digitalnoj elektronici će nam uglavnom biti dovoljni OP sa jednostrukim napajanjem, a prilično dobar izbor je LM358 koji je u stvari dvostruki OP u DIP8 kućištu. Da ne bi sve bilo idealno, OP imaju i neke nepoželjne karakteristike na koje moramo da pazimo i koje moramo da kompenzujemo, ali više o tome potražite sami na internetu. Dobar tekst na srpskom jeziku imate na wikipediji:
http://sr.wikipedia.org/sr/Operacioni_poja%C4%8Dava%C4%8D

Ako govorite engleski (što je praktično neophodno za elektroniku) pogledajte npr. sledeće sajtove:
http://www.electronics-tutorials.ws/opamp/opamp_1.html
http://www.allaboutcircuits.com/vol_3/chpt_8/2.html
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182711.11.2012. u 00:28 - pre 139 meseci
Logička sonda
=========
Prethodna lekcija je bila poslednja opšta teorijska lekcija, vreme je da predjemo na nešto konkrentije.
Obzirom da ćemo uskoro početi sa radom na pravom hardveru, trebaće vam ponešto od instrumenata radi otkrivanja eventualnih problema.
Ono što je neophodno je tzv. unimer (ili multimetar) i verovatno ga već posedujete, digitalni ili analogni, svejedno je. Ono što bi bilo lepo da imate je osciloskop, ali je prilično skup. A ono što bi svakako trebalo da imate, a možete i sami da napravite, je logička sonda.
Postoji jako puno šema, ali mnoge od njih imaju neke nedostatke pa preporučujem da napravite onu koju je Voja Antonić objavio u domaćem časopisu "PC" u broju 155. Pošto sam od Voje dobio dozvolu da objavim ovaj njegov projekat (i bilo koji ako zatreba), na ovom linku možete da skinete kompletan članak:

http://www.filedropper.com/logickasonda

Arhiva u kojoj je program za PIC, i PCB fajl radjen u PROTEL-u, prikačena je uz ovu poruku, fajl pod nazivom pc155sko.zip. Ako nemate PROTEL, možete i sami da projektujete štampanu ploču jer jer šema veoma jednostavna, a ionako je vojina verzija predvidjena za dvostranu pločicu.



Izgled štampane ploče za logičku sondu. Kliknite na sliku za veću.


Pored ovog, veoma koristan može da bude i instrument koji je Voja objavio u istom časopisu u brojevima 35 i 36, u članku pod nazivom "Alatka za digitalnu radionicu". Ceo projekat je preveden na engleski i objavljen od strane MICROCHIP-a pod nazivom "Engineering Assistant"; sve potrebne fajlove kao i ceo projekat možete da pronadjete na ovom linku:

http://www.microchip.com/stell...deId=1824&appnote=en027166

Uredjaj objedinjuje 4 instrumenta u jednom: logička sonda, logički analizator, analizator serijskog protokola, i frekvencmetar do 40 MHz. U časopisu je napisano da je maksimalna frekvenca 50 MHz, ali je Voja kasnije, uvidevši neke probleme, smanjio na 40 MHz.


[Ovu poruku je menjao rsinisa dana 11.11.2012. u 01:41 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182718.11.2012. u 20:07 - pre 138 meseci
REČNIK
=====
U elektronici se koristi mnogo stranih reči, izraza i skraćenica, uglavnom engleskih, od kojih neke imaju odgovarajuće domaće izraze, ali ima i mnogo onih koji ili nemaju adekvatan i razumljiv prevod, ili su se toliko odomaćile da im prevod nije potreban. Ovde su date neke osnovne reči, skraćenice i izrazi, a verovatno će biti i naknadnih dopuna kako bi sve te reči bile na jednom mestu.
Velikim slovima ispisan je originalni oblik, u zagradi približan izgovor, a iza crtice prevod ili objašnjenje.

* BLACK-OUT (blek aut) - označava nestanak napona.
* BROWN-OUT (braun aut) - označava variranje napona ispod granica normi, ali ne i pad napona na nulu.
* BUG (bag) - buba u svakdnevnom govoru, u elektronici označava nenamernu grešku u softveru ili hardveru zbog koje uredjaj ne radi onako kako je očekivano.
* DEBUG (dibag) - postupak oktrivanja greške.
* EEPROM (iprom ili eeprom) - vrsta memorije čiji se sadržaj upisuje i briše električnim putem, a čiji se sadržaj ne gubi nestankom napona napajanja. Uglavnom se koristi za smeštaj podataka koji se ne menjaju često ili čiji sadržaj treba zapamtiti nakon isključenja uredjaja.
* EPROM (eprom) - vrsta memorije čiji se sadržaj upisuje električnim putem, a briše ultraljubičastim zracima. Lako se prepoznaje po staklenom "prozoru" na sredini kućišta, takodje ne gubi sadržaj nestankom napona napajanja. Koristi se za smeštaj podataka koji se ne menjaju u toku rada uredjaja, ili za smeštaj programa kod mikroprocesora koji nemaju ugradjenu programsku memoriju.
* EUSART (jusart) - Napredni univerzalni sinhrono-asinhroni prijemnik/predajanik. Predstavlja sklop koji vrši komunikaciju sinhrono ili asinhrono sa drugim uredjajima.
* FLASH (fleš) - vrsta memorije čiji se sadržaj upisuje i briše električnim putem, a čiji se sadržaj ne gubi nestankom napona napajanja. Nastala je iz EEPROM-a, koristi se uglavnom u memorijskim karticama, USB fleš memorijama za smeštaj podataka, a kod PIC-a se koristi za smeštaj programa.
* HARDWARE (hardver) - sve fizičke komponente nekog uredjaja.
* I2C (aj skuerd si; i dva ce) - dvožična magistrala podataka za povezivanje raznih uredjaja.
* ICD (aj si di) - In Circuit Debuging, označava mogućnost traženja grešaka u kolu dok uredjaj radi.
* ICSP (aj si es pi) - In Circuit Serial Programming, predstavlja metod programiranja mikrokontrolera dok se nalazi na pločici uredjaja.
* INTERAPT - Prekid izvršavanja glavnog programa i prelazak na rutinu za obradu prekida.
* KOMPARATOR - Sklop koji ima dva ulaza i jedan izlaz (kao i OP, a jedan od sklopova sa OP je i taj) na kome se javlja napon napajanja ili masa, u zavisnosti od razlike napona na ulazima.
* POSTSKALER - delitelj iza brojača.
* PRESKALER - delitelj pre brojača.
* PULL-DOWN (pul daun) - obično se koristi pre reči "otpornik" i predstavlja otpornik koji se spaja jednim krajem na masu napajanja, a drugim na ulazni pin čime se taj pin drži na niskom logičkom nivou.
* PULL-UP (pul ap) - kao i PULL-DOWN s tim da je otpornik jednim krajem vezan na pozitivan kraj napajanja čime se ulaz dovodi na visok logički nivo.
* PWM (pi vi em) - Pulse Width Modulation, označava vrstu modulacije kod koje se menja odnos izmedju impulsa i pauze pri čemu frekvenca ostaje ista. Najčešće se koristi za kontrolu intenziteta LED, regulaciju brzine motora, generisanje različitih nivoa napona i sl.
* RAIL-TO-RAIL OUTPUT (reil to reil autput) - označava mogućnost da neki izlaz može da postigne napone jednake najnižem i najvišem kojim se napaja integralno kolo. Ako nema tu mogućnost, izlaz postiže napone niže za par desetina mV u odnosu na napon napajanja.
* RAM (ram) - vrsta memorije koja se koristi za smeštaj podataka (kod računara i za smeštaj programa), a čiji sadržaj se gubi nestankom napajanja.
* ROM (rom) - vrsta memorije koja je unapred popunjena od strane proizvodjača, njen sadržaj ne može da se menja, a često sadrži operativni sistem za manje računare ili neke druge važne podatke.
* SINK CURRENT (sink karent) - označava struju koja ulazi u neki pin.
* SLEEP MODE (slip mod) - režim rada mikrokontrolera u kome je privremeno zaustavljeno izvršavanje programa, čeka da ga nešto opet pokrene, a potrošnja je minimalna.
* SOFTWARE (softver) - sve nefizičke komponente, u praksi je to program.
* SOURCE CURRENT (sours karent) - označava struju koja izlazi iz nekog pina.
* STACK (stek) - skladište koje privremeno čuva neke važne informacije, obično je RAM tipa i nije veliki, može da bude jedna RAM lokacija ili par desetina.
* WATCHDOG (vočdog) - bukvalno pas čuvar; u elektronici je to sklop kojim se omogućuje resetovanje, odn. ponovno pokretanje nekog uredjaja koji iz nekog razloga (najčešće smetnja u naponu napajanja) ne radi kako je očekivano.


[Ovu poruku je menjao rsinisa dana 19.11.2012. u 13:09 GMT+1]
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182719.11.2012. u 21:08 - pre 138 meseci
PIC16F1827 - karakteristike
==================
Mikrokontroler koji ćemo da koristimo proizvod je firme "MICROCHIP", nosi oznaku PIC16F1827, i sada ćemo malo da se upoznamo sa njim i nekim od njegovih karakteristika koje možete da pronadjete u originalnom dokumentu koji možete da skinete sa ove adrese:
http://ww1.microchip.com/downloads/en/DeviceDoc/41391D.pdf
Preporuka je da ga obavezno skinete jer će Vam biti neophodan za ozbiljan rad, a i steći ćete naviku da čitate tehničku dokumentaciju bez čijeg pažljivog čitanja mogu mnoge stvari da Vam ostanu nejasne. Mnogi ljudi već znaju za moju izreku "Čitati, čitati i samo čitati" tako da je preporuka da se toga pridržavate - naučićete mnogo, nećete morati da čekate odgovor od drugih, a možda ćete nekome i da pomognete svojim znanjem.

Sada ćemo da nabrojimo veći deo karakteristika navedenog PIC-a, a u sledećim porukama ćemo da objasnimo malo detaljnije neke od njih.
- 3 tipa kućišta: 18-pinski DIP, 20-pinski SSOP i 28-pinski QFN/UQFN.
- 256 bajtova EEPROM-a
- 8 Kb programske memorije (FLASH tipa)
- 384 bajtova RAM-a
- Mogućnost interapta sa automatskim snimanjem važnih registara
- Stek od 16 nivoa
- Interni oscilator od 31 kHz do 32 MHz sa 1% preciznosti
- Radni napon od 1,8V do 5,5V
- Više vrsta reseta
- Vočdog tajmer sa periodom od 1ms do 268 sekundi
- Zaštita od isčitavanja programa
- Programiranje u kolu
- ICD funkcija
- Potrošnja struje u radu od 75 uA (mikroampera) pri taktu od 1 MHz i naponu 1,8V
- Potrošnja u stanju mirovanja (sleep) od 30 nA
- Jedan 10-bitni ADC modul sa 12 kanala
- Dva analogna komparatora
- Modul referentnog napona sa 1,024V, 2,048V i 4,096V
- 15 ulazno/izlaznih pinova i 1 isključivo ulazni pin
- Mogućnost davanja i primanja po 25mA po svakom pinu
- Pull-up otpornici na nekim pinovima
- Tajmer 0: 8-bitni tajmer/brojač sa 8-bitnim preskalerom
- Tajmer 1: 16-bitni tajmer/brojač sa preskalerom
- Tri tajmera 2: 8-bitni tajmer/brojač sa preskalerom i postskalerom
- Dva PWM modula
- EUSART modul
- Modul sa kapacitivnim senzorom: 12 ulaznih kanala
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182719.11.2012. u 23:07 - pre 138 meseci
Citat:
rsinisa: Logička sonda
=========

Pored ovog, veoma koristan može da bude i instrument koji je Voja objavio u istom časopisu u brojevima 35 i 36, u članku pod nazivom "Alatka za digitalnu radionicu". Ceo projekat je preveden na engleski i objavljen od strane MICROCHIP-a pod nazivom "Engineering Assistant"; sve potrebne fajlove kao i ceo projekat možete da pronadjete na ovom linku:

http://www.microchip.com/stell...deId=1824&appnote=en027166

Uredjaj objedinjuje 4 instrumenta u jednom: logička sonda, logički analizator, analizator serijskog protokola, i frekvencmetar do 40 MHz. U časopisu je napisano da je maksimalna frekvenca 50 MHz, ali je Voja kasnije, uvidevši neke probleme, smanjio na 40 MHz.


[Ovu poruku je menjao rsinisa dana 11.11.2012. u 01:41 GMT+1]


Da ne bude reklama, posedujem količinu od 5 komada pločica za Vojinu sondu, a čini mi se da imam i PIC-onje za iste :)
Pločice su dvostrane, pravljene u Ei-PCB

Slika Pločice

Petoro koji se jave posle 17:00 (putem PP) bi mogli da postanu vlasnici istih, sa sve PIC-onjom, za 15 € + poštarina.

Lista najbržih sa vremenima slanja PP, da ne bude varanja, biće javno objavljena ovde.

Samo jedna "zvrčka": Teritorija Srbije.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182725.11.2012. u 07:13 - pre 138 meseci
PIC16F1827 - detaljnije
================
Sada ćemo neke od navedenih karakteristika da upoznamo detaljnije.

- 8 KB programske memorije: Ovaj kontroler ima 14-to bitno jezgro što znači da se za jednu instrukciju koristi 14 bitova programske memorije, tj. 1 vord od 14 bitova. Obzirom da bajt ima 8 bitova, to znači da ovaj kontroler ima 4 KW (kilovord - označava 1024 vorda) memorije za programske instrukcije, tj u njemu ima mesta za tačno 4096 programskih instrukcija. Medjutim, taj podatak važi za asmeblerske instrukcije jer svaka zauzima tačno 1 vord, dok kod viših programskih jezika, kako smo već rekli, jedna instrukcija može da se sastoji iz nekoliko desetina asemblerskih.

- Stek od 16 nivoa: Dok se izvršava glavni program, često se nameće potreba da se pozove neki potprogram (to je kratak program koji se često koristi pa se izdvoji kao posebna celina) i kada se on izvrši, MCU mora da zna gde treba da se vrati. Pre poziva potprograma, MCU na stek stavi adresu sledeće instrukcije koja treba da se izvrši, pa nakon izvršenja potprograma, on uzme sa steka tu adresu i tako nastavlja tačno tamo gde je stao. Obzirom da stek ima 16 nivoa, to znači da iz jednog potprograma možemo da pozovemo drugi i tako sve do 16, tj. dok se stek ne popuni. Medjutim, PBP za svoje potrebe koristi nekoliko nivao steka, tako da je u PBP-u taj broj nešto manji.

- Interni oscilator od 31 kHz do 32 MHz sa 1% preciznosti: Da bi MCU mogao da radi, potreban mu je "dirigent" koji će da uskladi sva dešavanja unutar njega. Tome služi oscilator koji daje takt sa kojim se sve sinhronizuje. Ovaj oscilator može da bude spoljni ili unutrašnji (interni); ovaj PIC ima veliki izbor unapred odredjenih frekvenci koje može da proizvede, a to su:

* 32 MHz
* 16 MHz
* 8 MHz
* 4 MHz
* 2 MHz
* 1 MHz
* 500 kHz
* 250 kHz
* 125 kHz
* 62.5 kHz
* 31.25 kHz
* 31 kHz

Od svih ovih, jedino 31 kHz nije kalibrisana frekvenca, ostale imaju preciznost od 1%. Spoljni oscilator se koristi kada nam je potrebna velika preciznost i to je obično kristalni oscilator, dok se interni koristi kada nam je odstupanje od 1% prihvatljivo. Postavlja se pitanje koju frekvencu izabrati? Često je to najmanja koja nam je dovoljna za odredjeni uredjaj jer se sa povećanjem frekence povećava potrošnja.

- Više vrsta reseta: Reset predstavlja početak ili prekid u toku izvršavanja programa kada MCU počinje da izvršava program od unapred poznate adrese. Kod PIC-a (kao i kod većine MCU-a), nakon reseta program se izvršava od samog početka, tj, od adrese 0 (nula). Razlog za reset je situacija kada više nismo sigurni da bi se dalje izvršavanje programa odvijalo kako treba pa je potrebno da program krene od poznate lokacije, a kod ovog PIC-a su to: reset pri uključenju (POR - power-on reset), reset pri variranju napona ispod dozvoljene granice (BOR - brown-out reset), spoljni reset dovodjenjem logičke nule na pin -MCLR, WDT reset, reset instrukcija, greška pri prepunjavanju steka. Adresa od koje se vrši reset zove se još i "reset vektor".
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182725.11.2012. u 07:52 - pre 138 meseci
- Vočdog tajmer sa periodom od 1ms do 268 sekundi: ovaj sklop radi praktično kao tajmer sa resetom; u toku izvršavanja programa, na pogodnim mestima se postavi instrukcija koja resetuje ovaj tajmer, tj. njegov tajmer kreće od nule. Ako se program iz nekog razloga "zaglavi", resetovanje tajmera neće da se izvrši pa će on, nakon isteka zadatog vremena, da "natera" MCU da krene izvršavanje programa od poznate lokacije, u ovom slučaju od reset vektora, tj. da resetuje mikrokontroler. Vreme za koje mora da se izvrši resetovanje WDT tajmera može da se podešava od 1 ms do čak 268 sekundi, a zavisi od vremena potrebnog da se izvrši najduži deo programa ili najduži potprogram.

- Zaštita od isčitavanja programa: Uložili ste veliki trud u razvoj nekog uredjaja, pustili ste ga u prodaju, a onda nakon kratkog vremena vidite da je neko iskopirao uredjaj koji ste razvijali mesecima. Da se to ne bi desilo, možete da uključite zaštitu od isčitavanja program čime onemogućujete kopiranje vašeg intelektualnog vlasništva. Ova zaštita nije 100-postotna, ali će Vas zaštiti od većine "lopova".

- Potrošnja u stanju mirovanja (sleep) od 30 nA: Postoje situacije u kojima nije potrebno da MCU radi non-stop, već se on prebacuje u režim spavanja (sleep mod) iz koga ga budi odredjeni unapred definisani dogadjaj. U tom režimu potrošnja je minimalna tako da se on koristi najčešće u uredjajima koji se napajaju baterijski.

- Jedan 10-bitni ADC modul sa 12 kanala: Ovo znači da PIC ima jedan ADC, ali sa 12 ulaza s tim da je u jednom trenutku moguće očitati vrednost sa samo jednog ulaza. Obzirom da je brzina AD konverzije velika, za većinu potreba ovo je idealan kompromis jer sa samo jednim ADC-om možemo da očitavamo čak 12 analognih signala.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182730.11.2012. u 04:09 - pre 138 meseci
- Dva analogna komparatora: Već smo rekli šta je komparator, samo još da kažemo da ovi koji su ugradjeni u PIC mogu kao referenetni napon da koriste onaj proizveden pomoću DAC-a, napon iz modula referentnog napona ili neki spoljni napon.

- Modul referentnog napona sa 1,024V, 2,048V i 4,096V: Kao što smo rekli u lekcijama, za normalan rad ADC i DAC modula potreban nam je referentni napon što veće preciznosti. Zato ovaj PIC ima ugradjen modul koji proizvodi taj napon i vidimo da su oni jednaki stepenu broja 2, a preciznost je sasvim zadovoljavajuća za većinu primena.

- Pull-up otpornici na nekim pinovima: Ovi otpornici su često potrebni kada na neki pin priključimo prekidač, taster, ili bilo koju komponentu koja ima samo jedno stabilno stanje pa nam je potrebno, dok komponenta nije u aktivnom stanju, da preko otpornika povežemo pin na pozitivan napon kako bi na pinu uvek imali poznato stanje. Pošto spoljni otpornik zahteva mesta na PCB-u, vrlo je korisno što su ovi otpornici ugradjeni u sam PIC. Možda vam ovo trenutno nije baš najjasnije, ali uskoro ćete razumeti o čemu se radi.

- Tajmeri: Služe nam za preciznu kontrolu nekih dogadjaja, merenje intervala i sl, a stanje brojača se uvećava dovodjenjem odredjenog impulsa na ulaz. Mogu da se sinhronizuju sa taktom oscilatora ili sa nekim spoljnim izvorom frekvence, odn. impulsa.

- Modul sa kapacitivnim senzorom: 12 ulaznih kanala: Ovaj modul omogućava interakciju sa korisnikom bez mehaničkih komponenti kao što su tasteri, prekidači i sl. Najčešće se na samom PCB-u predvidi bakarna površina koju korisnik dodiruje prstom čime se vrši promena kapaciteta koju ovaj modul registruje. Obzirom da ima 12 ulaza, to znači da možemo da imamo 12 tastera, ali uz pomoć multipleksa, moguće je dobiti i veći broj.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182709.12.2012. u 00:19 - pre 138 meseci
Naš drugar sa foruma, Zoran Šćepanović poznat na ES-u kao ZAS011, odlučio je da sve primere koje uradim u PBP-u on napiše u PROTON BASIC-u tako da ćete imati praktično dva kursa odjednom. Otvoriće posebnu temu u kojoj će biti ti primeri, odradiće ih kada bude imao vremena, a link ka temi će biti postavljen naknadno.

Microcode studio
===============
Programe za PBP moguće je pisati u običnom tekst editoru pa ih posle kompajlirati iz komandne linije, ali danas se to radi uglavnom iz IDE okruženja jer je mnogo jednostavnije, lakše i preglednije. IDE za PBP se zove MicroCode Studio (MCS u daljem tekstu) i sada ćemo veoma kratko da se upoznamo sa par osnovnih detalja koji su Vam potrebni da bi ste počeli da pišete programe.
Kada pokrenete MCS i hoćete da pišete novi program, kliknite na ikonu NEW i imaćete situaciju kao na slici:


Slika 1


U gornjem redu vidite meni, ispod njega ikone, ispod njih levo vidi se polje za izbor mikrokontrolera (početno je odabran PIC16F628A), ispod njega sa leve strane nalazi se polje u kome se vide definicije, konstante, promenljive i sl, a desno je veliko polje u kome se piše program. Vidimo da je program sam ubacio zaglavlje u kome se nalazi nekoliko linija komentara. Odmah ispod zaglavlja je prostor u kome se piše program. Kada završimo pisanje, pritiskom na F9 ili klikom na Compile vrši se prevodjenje (kompajliranje) PBP programa i kao rezultat, ako je sve bez grešaka, dobije se HEX fajl kojim se programira mikrokontroler.

Pre samog programa potrebno je napisati nekoliko stvari kao što su: konfiguracija, definicije, promenljive i sl.
Na sledećoj slici vidi se sam početak programa za testiranje MINI PIC 1 razvojnog sistema


Slika 2


Zaglavlje je u zelenoj boji jer je to boja kojom MCS označava komentare. Ispod toga je u komentaru navedeno za koji PIC je program. Ni zaglavlje ni komentar o PIC-u nisu neophodni, ali mogu da budu zgodni kao informacije.
Ispod vidimo konfiguraciju izmedju linija #CONFIG i #ENDCONFIG koja takodje nije neophodna, ali olakšava posao pri programiranju jer bi u protivnom morali ručno da je podesimo u softveru za programiranje. Ispod je DEFINE pseudo naredba koja takodje nije neophodna ako koristimo oscilator na 4 MHz jer je to podrazumevana vrednost za PBP. Medjutim, da ne bi bilo zabune dobra je ideja postaviti i tu liniju.

U dnu prozora vidimo polje nakon kompajlirana u kome se nalaze informacije u slučaju neuspelog kompajliranja, a u zadnjoj liniji vidimo koliko je programskih reči utrošeno. Na sredini te linije nalaze se koordinate u kojima se nalazi kursor.

[Ovu poruku je menjao rsinisa dana 09.12.2012. u 01:34 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182709.12.2012. u 15:20 - pre 138 meseci
Evo linka ka temi koja će paralelno ovom tutorijalu da se bavi PROTON BASIC kompajlerom.

http://www.elitesecurity.org/t...rijal-Proton-PicBasic-PDS-PICF

Pozdrav.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182715.12.2012. u 05:53 - pre 138 meseci
Prvi koraci
========
Na početku svakog programa potrebno je uraditi nekoliko stvari koje praktično ne čine sam program, ali su bitne za rad kompajlera i mikrokontrolera.

Pokrenite MCS i dobićete ekran sličan slici 1 u pretposlednjoj poruci. U gornjem levom uglu nalazi se izbornik "Microcontroller" iz čije liste treba da odaberete PIC16F1827 i time ste kompajleru stavili do znanja za koji PIC pišete program. Sledeće što možete da uradite je da u zaglavlje upišete neke podatke o vašem programu, odn. čemu program služi, mada to možete da uradite i ispod zaglavlja kao komentar. U PBP sintaksi komentar se piše tako što se ispred njega stavi gornji apostrof (') ili tačka-zarez (;) i sve iza toga do kraja linije kompajler neće da uzima u obzir, jednostavno će da ignoriše sve što piše iza znaka za komentar sve do kraja linije, tj. dok ne pritisnete ENTER. U MCS-u komentari su obeleženi zelenom bojom.
Moja navika je da za komentar stavljam znak ";" jer često kombinujem PBP i ASM, a za ASM naredbe jedino je ";" validan za komentar.

Nakon toga možete u komentar da stavite i oznaku PIC-a za koji je progam pisan jer može da se desi da MCS "izgubi" tu informaciju ili da nekome pošaljete program kao tekst.

Sledeće što treba da uradite je da postavite konfiguraciju. O čemu se zapravo radi? Svaki PIC ima jedan ili više registara čiji sadržaj može da se postavi samo u toku programiranja i koji služe da se podese neki parametri kao što su vrsta oscilatora, zaštita memorije od isčitavanja, parametri WATCHDOG tajmera (u daljem tekstu WDT), itd. Konfiguraciju nije neophodno postaviti u programu jer većina softvera za progamiranje dozvoljava ručno postavljanje pre samog programiranja, ali to nije pametno jer ćete u nekom momentu i vi sami da zaboravite koja je konfiguracija u pitanju za odredjeni program. Zato je veoma zgodno da se konfiguracija podesi u samom progamu čime se ona nakon kompajliranja nalazi u HEX fajlu i softver za programiranje automatski podesi sve kako ste zamislili.

PIC16F1827 ima dva konfiguraciona registra koji imaju neke podrazumevane vrednosti pa je u programu dovoljno podesiti samo one parametre koji se menjaju. Konfiguracija se navodi izmedju pseudo-naredbi #CONFIG i #ENDCONFIG (pseudo-naredbe su one koje ne menjaju sam program već služe kao informacija za kompajler) i za program kojim se testira MINI PIC 1 izgleda ovako:

#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _MCLRE_OFF & _WDTE_OFF
__config _CONFIG2, _PLLEN_OFF & _LVP_OFF
#ENDCONFIG

Medjutim, bolje je postaviti sve konfiguracione parametre u ovaj deo programa kako bi svi bili izlistani i kako ne bi morali svaki put da gledamo u tehničke podatke šta su podrazumevane vrednosti. Sve vrednosti za PIC16F1827 možete da pronadjete u PBP3 direktorijumu, poddirektorijum DEVICE_REFERENCE, fajl "PIC16F1827.INFO", a za naš tutorijal konfiguracija koju ćemo da koristimo u početnim primerima izgleda ovako:

#config
__config _CONFIG1, _FOSC_INTOSC, _WDTE_OFF, _PWRTE_ON, _MCLRE_OFF, _CP_OFF, _CPD_OFF, _BOREN_OFF, _CLKOUTEN_OFF, _IESO_OFF, _FCMEN_OFF
__config _CONFIG2, _WRT_ALL, _PLLEN_OFF, _STVREN_OFF, _BORV_19, _LVP_OFF
#endconfig

Ove dve pseudo-naredbe mogu da budu napisane i malim i velikim slovima. MCS ima tu osobinu da neke rezervisane reči sam prepravi u velika ili mala slova, a takav je slučaj i sa #ENDCONFIG - ako je kucate velikim slovima, nakon zadnjeg slova videćete da je automatski pretvorena u mala slova. Nema potrebe da vas to zbunjuje, sama reč je zaista napisana velikim slovima, ali je MCS prikazuje kao da je pisana malim. Pošto je to ionako nebitno, možete da pišete kako hoćete.

Za one koji hoće da znaju više o konfiguracionim registrima: pogledajte tehničke podatke za PIC16F1827, poglavlje "4.0 DEVICE CONFIGURATION".


I na kraju treba kompajleru staviti do znanja koja je frekvenca oscilatora koju koristimo, a to se radi sa DEFINE pseudo-naredbom:

DEFINE OSC 4

Ova naredba MORA da bude napisana velikim slovima, a sama definicija je nepotrebna ako koristimo oscilator na 4 MHz, ali je svakako poželjno da je postavimo. Ovu informaciju koristi kompajler kako bi preračunao neke od vremenski zavisnih naredbi, kao što je PAUSE. Vrednosti koje PBP podržava su (u MHz): 3 (za 3,58 MHz), 4, 8, 10, 12, 16, 20, 24, 25, 32, 33, 40, 48 i 64.
U slučaju da koristite neku frekvencu koja ovde nije navedena, moraćete sami da preračunate parametre za vremenski zavisne naredbe. Pretpostavimo da koristite oscilator na 2 MHz; u tom slučaju zgodno je upotrebiti DEFINE OSC 4 i onda sve vremenske parametre jednostavno duplirate, pa bi za pauzu od 20 ms trebalo napisati PAUSE 40.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182726.12.2012. u 08:32 - pre 137 meseci
Postavka 1
=======
U narednim primerima koristićemo sledeća podešavanja.

Razvojni sistem:
J1 uvek mora da bude postavljen kako bi PIC mogao normalno da radi.
J2 postavljen na RA6/RA7
J3 postavljen na ZV
J4 nebitno
SW1 svi prekidači uključeni
SW2 svi prekidači isključeni
SW3 svi prekidači isključeni
LCD izvadjen
IC2 izvadjen
CON4 prazan
CON5 prazan
XT1 nebitno, može da bude postavljen kristal, a i ne mora jer se koristi interni oscilator

Konfiguracija PIC-a:
#config
__config _CONFIG1 & _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__config _CONFIG2, _WRT_ALL & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
#endconfig

DEFINE OSC 4


[Ovu poruku je menjao rsinisa dana 26.12.2012. u 13:31 GMT+1]
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: TUTORIJAL: PicBasic Pro 3 i PIC16F182726.12.2012. u 10:21 - pre 137 meseci
Primer 1
======
Vreme je da napišemo naš prvi program.
Uradite stvari koje smo naveli u tekstu "Prvi koraci" i nakon toga program bi trebalo da izgleda otprilike ovako:



Obratite pažnju da se na slici vidi da je pseudonaredba DEFINE napisana malim slovima, a treba velikim. Problem je u samom editoru koji, kao što je već rečeno, nekim rečima sam menja veličinu slova, ali zapamtite da sve DEFINE naredbe MORAJU da budu napisane velikim slovima, a da će MSC editor da ih pretvori u mala.

Ubuduće sav programski kod koji budemo pisali biće napisan bez zaglavlja i konfiguracije jer se podrazumeva da ona ide na početku svakog programa.

Počećemo sa veoma jednostavnim primerom; palićemo i gasiti LED na pinu 0 porta B sa pauzom od pola sekunde izmedju. LED je skraćenica za "Light Emithing Diode", odn. za diodu koja emituje svetlost; koristi se kao i svaka dioda i kada je polarisana direktno, tj. kada kroz nju protiče struja ona svetli nekom bojom koja zavisi od materijala od koga je izradjeno vlakno. Još je bitno napomenuti da se LED napaja strujno, a ne naponski, a za standardnu LED je potrebno ograničiti struju na 15 do 20 mA. To se radi vezivanjem otpornika na red sa LED, a otpornik se proračunava prema padu napona na LED. Na MINI PIC 1 razvojnom sistemu se već nalazi otpornik, ali ćemo radi vežbe da uradimo jedan proračun.
Za crvenu, pri struji od oko 20 mA, pad napona je približno 2 volta pa ćemo prema omovom zakonu da izračunamo vrednost otpornika tako što od napona napajanja oduzmemo pad napona na LED. U našem slučaju napon napajanja je 5V, pad napona na LED je 2V pa je vrednost za otpornik:

R=U/I = (5 - 2) / 0,02 = 3 / 0,02 = 150 oma. To je vrednost koja postoji u standradnoj ponudi, a ako se desi da ne postoji, uzima se prva sledeća veća vrednost. Ako se koristi LED sa visokim sjajem, taj otpornik može da se poveća ako je sjaj prejak.

Idemo dalje sa programom. Ispod naredbe DEFINE OSC 4 kucajte sledeće:

Code:

pocetak:
    high portb.0        ;uključi LED na pinu 0 porta B
    pause 500           ;napravi pauzu od 500 milisekundi
    low portb.0         ;isključi LED
    pause 500           ;napravi pauzu od 500 milisekundi
    goto pocetak        ;idi na labelu pocetak
end                     ;oznaka kompajleru da je ovde kraj našeg programa


Sada bi prozor MCS-a trebalo da izgleda ovako:



Kao što vidimo, prva linija programa počinje nečim što nije naredba i završava dvotačkom, tj.
labelom 'pocetak:'. Pre nego što objasnimo šta je labela, vratićemo se malo unazad, u prve
dane BASIC-a.


P.S. Mala izmena na koju me je uputio Pedja089. Pseudo naredba DEFINE ne mora da bude napisana velikim slovima, ali ono iza nje mora. To znači da bi u našem primeru moglo i da se napiše

define OSC 4

Naravno, nije greška ako napišete i DEFINE velikim slovima.

[Ovu poruku je menjao rsinisa dana 26.12.2012. u 13:19 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: TUTORIJAL: PicBasic Pro 3 i PIC16F1827
(TOP topic, by veselinovic)
Strane: 1 2 3 4 5

[ Pregleda: 54260 | Odgovora: 88 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.