• 7 odgovora
  • 3.391 pregleda
pitanja uz TUTORIJAL: xc8 i pic16F1827 29.12.2012. u 00:03 · pre 168 meseci #1
Pitanja možete postavljati ovde. Takođe, dobrodošli su i svi predlozi kako bi smo zajedno unapredili temu o programiranju PIC mikrokontrolera u jeziku C.
Potpis
gorankg
Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 29.12.2012. u 23:05 · pre 168 meseci #2
pitanje:

while(1) sta konkretno znaci ovo (1) u while petlji i da li tu moze biti neka druga vrednost i ako moze sta u stvari to znaci.


Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 29.12.2012. u 23:33 · pre 168 meseci #3
Mislim da je to pre pitanje vezano za C, a ne mikrokontrolere, ali i to nekako spada u ovu oblast. :)

U zagradi while petlje se nalazi uslov koji odredjuje da li ce se petlja izvrsavati ili ne.
Kada se radi sa mikrokontrolerima mora postojati jedna beskonacna petlja u kojoj ce program da se izvrsava, jer na neki nacin samo to ima smisla.
Posto je u C-u uslov ispunjen ako je resenje nekog izraza razlicito od 0, jasno je da broj 1 predstavlja ispunjen uslov. A ako zelimo da dobijemo beskonacnu petlju, moramo da imamo izraz koji je uvek tacan. Bilo koji broj razlicit od nule je uvek razlicit od nule i samim tim je uslov uvek ispunjen. Osim broja 1 u zagradi moze da stoji bilo koji broj razlicit od nule. Ako bi stojala nula, while petlja se nikada ne bi izvrsavala. Verujem da se najcesce stavlja broj 1 zato sto se poistovecuje sa TRUE ili "ima napona" pri logickoj jedinici, a 0 predstavlja FALSE ili "nema napona".

Nadam se da je odgovor zadovoljavajuc. :)

Pozdrav,
lestrigonac
Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 30.12.2012. u 17:08 · pre 168 meseci #5
I dobio si ga zaista brzo. Odlično! AKo još neko ima pitanja vezana za C izraze neka ih postavlja ovde. U drugom sam primeru dodao for i if izraze. Javite se ukoliko treba pojašnjenja i za to.
Potpis
gorankg
Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 24.06.2013. u 21:12 · pre 162 meseci #6
Prvi put radim sa MPLAB X instalirao sam i kompajler XC8 v1.12 FREE verziju i to je sve ok.Prvi primer (za probu) sam uradio po ovom tutorijalu:

http://www.siriusmicro.com/mplabx-c.html

ali mi nije jasno zasto se ovo desava sa

__delay_ms(100);

evo screen

ne mogu da uploaduem

pa cu reci

u liniji gde je

__delay_ms(100); imam ! u crvenom krugu umesto broja linije

[Ovu poruku je menjao yt1nvs dana 24.06.2013. u 22:29 GMT+1]
Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 24.06.2013. u 22:20 · pre 162 meseci #7
Mora da postoji negde tekst koji prati (objasnjava) to upozorenje. Ne koristim MPLABX pa ti ne mogu reci gde da trazis. Nadji tu poruku koju ti izbacuje nakon pokusaja prevodjenja pa je daj ovde da pogledamo.
Potpis
gorankg
Re: pitanja uz TUTORIJAL: xc8 i pic16F1827 24.06.2013. u 22:57 · pre 162 meseci #8
XC8 kompajler (nevezano za MplabX) nema vise te delay funkcije. Mogu da se prepisu/portuju ali cela ideja iza toga je da se vise ne koriste takve vrste funkcija. Sve situacije gde je tako nesto potrebno se resavaju na druge nacine, npr preko tajmera ili cekajuci neki statusni bit od neke periferije.

Recimo prost ekvivalent te delay funkcije bi bilo ovako nesto:

Code:
// Insert some delay
long x;
x = 1024*1024;
while(x--);


Ovo parce code-a ce potrositi nekih 2^20 takt ciklusa da bi napravilo oko 1s pauzu sto je skroz neefikasno i jos dodatno "nestabilno" jer npr moze neki interapt to vreme da produzi pa se iz prakticnih razloga takve stvari resavaju sa tajmerima+interapt.
Naravno kod ovako velih pauza reda sekundi nije kriticno neki takt tamo-vamo ali kada se to smanji na dosta kraca vremena onda vec budu veoma primetne greske.
Potpis
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme