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

Tutorijal: Proton+ PicBasic (PDS) i PIC16F1827

[es] :: Elektronika :: Mikrokontroleri :: Tutorijal: Proton+ PicBasic (PDS) i PIC16F1827
(TOP topic, by veselinovic)

[ Pregleda: 7820 | Odgovora: 8 ] > 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 Tutorijal: Proton+ PicBasic (PDS) i PIC16F182709.12.2012. u 09:25 - pre 138 meseci
Ova tema će ići paralelno sa Sinišinim tutorijalom i PBP3, a reč je o Proton+ PicBASIC kompajleru. Ovi tekstovi će biti mirror-ovani i na mom blog-u, za svaki slučaj.
Elem, radno okruženje je jako slično MCS-u i zove se Proton IDE (IDE = Integrated Development Environment).



Kao i kod MCS-a u gornjem redu se nalaze ikonice podeljene u 5 funkcionalnih celina.



Podešavanje izgleda ikonica se postiže dsnim klikom u prazno mesto u traci sa ikonicama čime se dobija pop-up meni kao na gornjoj slici. Podešavanja prepuštam čitaocima ovih redova da "provaljuju", mada su sva veoma intuitivna.

Već u startu primećujete da postoje razlike izmešu ova dva okruženja. Kod PDS se tip kontrolera ne bira iz posebnog drop-down liste već pomoću njegove deklaracije na samom početku programa korišćenjem rezervisane reči Device. Takođe, radna frekvencija se deklariše na sličan način.

Sve što vam je potrebno da saznate o rezervisanim rečima, tipovima promenljivih, logičkim operacijama, matematičkim finkcijama, i svemu ostalom, možete dobiti iz Help menija u kome se nalazi link za Proton Compiler Manual, koji je inače u .pdf formatu i, ukoliko hoćete, isti možete odštampati.



Kada smo već kod deklaracija i podešavanja samog kontrolera, podešavanje konfiguracionih bitova 10/12/16 kontrolera se vrši pomoću rezervisanih reči Config, za baseline kontrolere, odnosno Config1 i Config2, za enhanced kontrolere u koje spada ovaj za koji se piše ovaj tutorijal.

Moj vam je savet da u konfiguracione reči ubacite SVE konfiguracione bit-ove, a koji su to bitovi možete videti u .ppi fajlu za određeni kontroler koji se nalazi u folderu koji je prikazan na sledećoj slici (a tačna lokacija zavisi od vaše instalacije).


--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Prikačeni fajlovi
 
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: Proton+ PicBasic (PDS) i PIC16F182716.12.2012. u 14:43 - pre 137 meseci
Elem, pošto predpostavljam da su svi već skockali svoj razvojni sistem i dobili/kupili mikrokontroler, da počnem sa tutorijalom koji će ići paralelno sa Sinišinim.

Inače, sva pitanja vezana sa oba tutorijala postavljejte ovde: http://www.elitesecurity.org/t...Sva-pitanja-vezi-tutorijala-za

Kada pokrenete ProtonIDE dobićete razvojno okruženje koje ste videli u prethodnom post-u. Ono što je malko drugačije od okruženja za PBP je da se u samom vašem programu, na početku definiše za koji procesor pišete vaš program:



Pošto PDS ima "korenje" na istom mestu kao i PBP, mnoge stvari vezane za razvojno okruženje (IDE) su jako slične, tako da se nećemo mnogo baviti njima.
Sve što se nalazi iza jednostrukog navodnika "'" ili tačke-zarez ";" se smatra komentarom i kompajler to ne uzima u obzir. Primetićete da su boje u ProtonIDE različite od boja u MCS.

Da bi kontroler radio nešto smisleno, potrebno ga je pravilno konfigurisati. PIC16F1827 poseduje 2 konfiguraciona registra pošto spada u Enhanced seriju kontrolera.
Pošto je prelistavanje dokumentacije, često, neophodno, za svoje potrebe sam napravio par fajlova koji mi služe za smanjenje "preturanja" po dokumentaciji a i povećavaju preglednost programa koji pišem. Tako, za svaki kontroler imam zaseban Include fajl, koji smeštam u folder u kome se nalazi projekat na kome radim, i u ovom slučaju u tom folderu se nalazi fajl 16F1827CONFIG.inc. Sam fajl možete pogledati u Proton IDE okruženju i biće vam jasnije o čemu pišem.



I da ne zaboravim, potrebno je kompajleru staviti do znanja na kojoj frekvenciji "kucka srce" kontrolera pomoću naredbe Define Xtal xx, u načem slučaju 4 (MHz)
Za razliku od MCS, ovde nema veze da li pišete veliki ili malim slovima, editor ključne reči sam formatira prema svojim pravilima.

Moguće frekvencije za Enhanced kontrolere, u MHz su sledeće: 3, 4, 7, 8, 10, 12, 14, 16, 19, 20, 22, 24, 29, 32 ili 48, s time da neke nisu "okrugle" već prema sledećoj listi:
3 - 3.58
7 - 7.2
14 - 14.32
19 - 19.66
22 - 22.1184
29 - 29.2
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Prikačeni fajlovi
 
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: Proton+ PicBasic (PDS) i PIC16F182727.12.2012. u 22:12 - pre 137 meseci
Code:
Device 16F1827
Declare Xtal = 4
Declare All_Digital = True
Declare PortB_Pullups = False

Config1 FOSC_INTOSC, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_OFF,_
        CPD_OFF, BOREN_OFF, CLKOUTEN_OFF, IESO_OFF, FCMEN_OFF
Config2 WRT_OFF, PLLEN_OFF, STVREN_OFF, LVP_OFF

OSCCON = %01101000

pocetak:
    High PORTB.0        ;uklju\u010di LED na pinu 0 porta B
    DelayMS 500        ;napravi pauzu od 500 milisekundi
    Low PORTB.0        ;isklju\u010di LED
    DelayMS 500        ;napravi pauzu od 500 milisekundi
    GoTo pocetak        ;idi na labelu pocetak
End                ;oznaka kompajleru da je ovde kraj na\u0161eg programa


Evo Sinišinog prvog programa u Proton varijanti.

Tokom ovog uporednog programskog dela tutorijala, samo ću da naglašavam razlike u sintaksi jednog i drugog "slenga" :)
Iz priloženoga se da videti da se u Protonu pauziranje programa vrši naredbom DelayMS (postoji i kraća pauza DelayUs, gde je vreme izraženo u mikrosekundama).
I jedna i druga pauza za argument mogu da imaju maksimalnu vrednost od 65535 ($FFFF %1111111111111111)

Kod pauziranja u mikrosekundama, postoji i jedno ograničenje, a vezano je za radnu frekvenciju:

4MHz - 24us
8MHz - 12us
10MHz - 8us
16MHZ - 5us
20+MHz - 2us

[Ovu poruku je menjao ZAS011 dana 28.12.2012. u 21:36 GMT+1]
--
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

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

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


+530 Profil

icon Re: Tutorijal: Proton+ PicBasic (PDS) i PIC16F182729.12.2012. u 08:52 - pre 137 meseci
Pošto smo napisali naš prvi i najprostiji program, čuveni "Hello World" u svetu mikrokontrolera, isti je potrebno "prevesti" u format koji mikrokontroler razume. Taj postupak prevođenja se naziva kompajliranje.
Za razliku od PBP, PDS nema opcije u padajućim menijima za kompajliranje, sve su "vizuelne" u obliku dugmića. Za samo kompajliranje postoji i prečica na tastaturi, to je funkcijski taster "F9"

,


Po završenom prevođenju, ispod prozora u kome se nalazi naš izvorni tekst programa će se otvoriti prozor sa rezultatima (Results). Primetićete da trenutno u njemu nije naznačeno koliko će programske memorije zauzeti naš program u kontroleru kao ni koliko mu je potrebno RAM memorije, već je isposana jedna napomena, vezana za konfiguracione bit-ove, čisto da nas upozori da smo ih eksplicitno vaveli u našem programu.



Da nam kasnije ne bi smetala, PDS posedije svoju naredbu kmoja se zove Reminders (Podsetnici) kojom se ova upozorenja mogu isključiti/uključiti. Da biste videli zauzeće FLASH'a i RAM'a kliknete na strelicu sa desne strane Results prozora i odaberete opciju Toggle view.



Na sledećoj slici je prikazano korišćenje pseudonaredbe Reminders.


--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Prikačeni fajlovi
 
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: Proton+ PicBasic (PDS) i PIC16F182730.12.2012. u 09:31 - pre 137 meseci
Sinišin Primer2 u Proton verziji

Code:
Device 16F1827
Declare Xtal = 4
Declare All_Digital = True
Declare PortB_Pullups = False

Include "Tutor1Config.inc"

OSCCON=%01101000
ANSELB=0

pocetak:
High PORTB.0        ;ukljuci LED na pinu 0 porta B (D1)
High PORTB.1        ;ukljuci LED na pinu 1 porta B (D2)
High PORTB.2        ;ukljuci LED na pinu 2 porta B (D3)
High PORTB.3        ;ukljuci LED na pinu 3 porta B (D4)
High PORTB.4        ;ukljuci LED na pinu 4 porta B (D5)
High PORTB.5        ;ukljuci LED na pinu 5 porta B (D6)
High PORTB.6        ;ukljuci LED na pinu 6 porta B (D7)
High PORTB.7        ;ukljuci LED na pinu 7 porta B (D8)
DelayMS 500           ;napravi pauzu od 500 milisekundi
Low PORTB.0         ;iskljuci LED na pinu 0 porta B
Low PORTB.1         ;iskljuci LED na pinu 1 porta B
Low PORTB.2         ;iskljuci LED na pinu 2 porta B
Low PORTB.3         ;iskljuci LED na pinu 3 porta B
Low PORTB.4         ;iskljuci LED na pinu 4 porta B
Low PORTB.5         ;iskljuci LED na pinu 5 porta B
Low PORTB.6         ;iskljuci LED na pinu 6 porta B
Low PORTB.7         ;iskljuci LED na pinu 7 porta B
DelayMS 500           ;napravi pauzu od 500 milisekundi
GoTo pocetak        ;idi na labelu pocetak

End                     ;oznaka kompajleru da je ovde kraj našeg programa

Link na Tutor1.bas
Link na Tutor1Config.inc

(ovaj primer se kompajlira u 132 programke reči)

Pošto se ovde operiše sa čitavim port-om, gornji primer može i da se optimizuje, biće kraći kako za čitanje tako i posle kompajliranja.

D
Code:
evice 16F1827
Declare Xtal = 4
Declare All_Digital = True
Declare PortB_Pullups = False

Include "Tutor1Config.inc"

OSCCON=%01101000
ANSELB=0

pocetak:
High PORTB        ;ukljuci LED-ove na PORT-u B (0..7)
DelayMS 500       ;napravi pauzu od 500 milisekundi
Low PORTB         ;iskljuci LED-ove na PORT-u B (0..7)
DelayMS 500       ;napravi pauzu od 500 milisekundi
GoTo pocetak      ;idi na labelu pocetak

End                ;oznaka kompajleru da je ovde kraj našeg programa

Link na Tutor2.bas

(ovaj primer se kompajlira u 79 programskih reči)

i još možemo da ga optimizujemo, da bude još "za dlaku" kraći:

Code:
Device 16F1827
Declare Xtal = 4
Declare All_Digital = True
Declare PortB_Pullups = False

Include "Tutor1Config.inc"

OSCCON=%01101000
ANSELB=0

Output PORTB

pocetak:
LATB = %11111111 ;ukljuci LED-ove na PORT-u B (0..7)
DelayMS 500      ;napravi pauzu od 500 milisekundi
LATB = 0         ;iskljuci LED-ove na PORT-u B (0..7)
DelayMS 500      ;napravi pauzu od 500 milisekundi
GoTo pocetak     ;idi na labelu pocetak

End              ;oznaka kompajleru da je ovde kraj našeg programa

Link na Tutor3.bas

(ovo se kompajlira u 77 programskih reči)

Za razliku od Baseline kontrolera, ovi Enhanced pored TRIS registara ilaju i LAT registre (oni prvi određuju smer pinova - Input ili Output, ovi drugi direktno utiču na stanje izlaznih pin-ova.
Nekada je bolo dovoljno samo pridodeljivati vrednosti određenim pin-ovima porta kako bi se promenilo njihovo stanje, npr PORTB.0 = 1, sada se to raadi malko drugačije LATB.0 = 1.

Od 01.01.2013 sve ove primere ćete moći da nađete linkovima koji će biti ispod svakog primera.
--
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

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

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


+530 Profil

icon Re: Tutorijal: Proton+ PicBasic (PDS) i PIC16F182701.01.2013. u 11:03 - pre 137 meseci
Zbog problema sa hostingom, u prethodnoj poruci nije bilo mogućnosti da se postave linkovi prema fajlovima, zato su dati ovde.

http://zastos.biz/ForShare/1827_Tutor/Tutor1.bas
http://zastos.biz/ForShare/1827_Tutor/Tutor1Config.inc
http://zastos.biz/ForShare/1827_Tutor/Tutor2.bas
http://zastos.biz/ForShare/1827_Tutor/Tutor3.bas
--
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

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

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


+530 Profil

icon Re: Tutorijal: Proton+ PicBasic (PDS) i PIC16F182711.01.2013. u 20:40 - pre 137 meseci
Pošto sam danas tek stigao da pribavim jednog PIC-onju, čisto da obavestim sve one koji prate ovo pisanije da Tutor3.bas ne "fercera" (što sam i predpostavio, ali ...)
--
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

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

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


+530 Profil

icon Re: Tutorijal: Proton+ PicBasic (PDS) i PIC16F182730.03.2013. u 18:10 - pre 134 meseci
Siniša se raspisao, a ja "uspavao"

Elem, u PDS se promenljive kreiraju (obezbeđuju lokacije u RAM memoriji mikrokontrolera) malko drugačije nego u PBP.

Ovo se odnosi na promenljive koje su uvek pozitivne:
Code:
Dim fleg        As Bit
Dim Bajt        As Byte
Dim Rec            As Word
Dim DugackaRec    As Dword
Dim plivajuca    As Float

Ukoliko nam "matematika" zahteva rad i sa negativnim vrednostima promenljive se kreiraju na malko drugačiji način:
Code:
Dim INegBajt        As SByte
Dim INegRec            As SWord
Dim INegDugackarec    As SDword


Promenljive tipa Bit, očigledno ne mogu biti negativne, a ni aritmetika sa promenljivima u pokretnom zarezu ne podržava negativne brojeve.

Nizovi se definišu na sledeći način:
Code:
Dim Bajt[10]        As Byte
Dim Rec[10]            As Word
Dim DugackaRec[10]    As Dword

Za nizove važe ista ograničenja koja je Siniša opisao u svom tutorijalu, a vezana su za količinu raspoložive RAM memorije mikrokontrolera

Da podsetim, zauzeće broja bitova/bajtova zavisno od veličine promenljive:
Code:
Byte 8 / 1
Word 16 / 2
DWord 32 / 4
Float 32 / 4

Isto važi i za promenljive sa predznakom.

PDS inače ima jako dobar Help u PDF formatu i toplo preporučujem svima da ga što češće koriste (i ja to isto radim kada mi vijuge "zaribaju")

Kao i u PBP i u PDS se može eksplicitno pristupiti svakom Bit-u promenljive
Code:
BitPromenljiva = BajtPromenljiva.n

gde n može biti u opsegu 0 do 7
za promenljive tipa Word u opsegu 0 do 15
i za promenljive tipa DWord u opsegu 0 do 31

Pisao sam o promenljivima. U našim programima ćemo ponekad koristiti i konstante. Mnogo je lakše zapamtiti neko opisno ime za razliku od broja, pogotovo ukoliko se ta konstanta često upotrebljava, i izmenom same konstante naš program nećemo morati da menjamo na "zilion mesta" već na samo jednom
Code:
Dim Zadrska        As 10

GoTo Glavni

Glavni:
    DelayMS Zadrska
erturn

Main:
.
.
.
.
GoSub pauza
.
.
.
End


Jedna preporuka za pisanje programa:
Code:
Device
{
  Deklaracije
}
{
  Include fajlovi
}
{
  Deklaracije Konstanti i Promenljivih
}

GoTo Glavni

{
  Ovde dođu podprogrami
}
{
Glavni
Ovde dođe gvlavna programska petlja
}

--
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

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

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


+530 Profil

icon Re: Tutorijal: Proton+ PicBasic (PDS) i PIC16F182723.06.2013. u 15:12 - pre 131 meseci
Da ne pomislite da sam postao "uspavana lepotica" , na mom blogu se nalaze svi dosadašnji Sinišini tutorijali u verziji za PDS kompajler.

Ukoliko ima nekih grešaka (trenutno sam van zemlje) slobodno se oglasite sa PP.
--
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

[es] :: Elektronika :: Mikrokontroleri :: Tutorijal: Proton+ PicBasic (PDS) i PIC16F1827
(TOP topic, by veselinovic)

[ Pregleda: 7820 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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