PAUSE
pause period
Zaustavlja izvršavanje programa u trajanju od 'period' milisekundi.
'Period' je 16-to bitna vrednost, tako da pauza može da traje maksimalno 65
535 ms (nešto preko jednog minuta). Za razliku od NAP i SLEEP, PAUSE ne stavlja
mikrokontroler u režim male potrošnje, samim tim ta naredba troši više struje,
ali je i preciznija.
Ova naredba pretpostavlja da je upotrebljen oscilator od 4MHz; ako se koristi
druga vrednost za oscilator, potrebno je upotrebiti DEFINE OSC naredbu.
pause 1000 'pauza u trajanju od 1 sekunde
[nazad]
Ova naredba je slična prethodnoj, ali je 'period' izražen u mikrosekundama (µs). Maksimalna pauza iznosi 65 535 µs. Pošto ova naredba koristi minimalan broj ciklusa za rad, u zavisnosti od upotrebljenog oscilatora postoji minimalna pauza koju je moguće ostvariti. Za kraće pauze upotrebite asmeblersku rutinu unutar ASM...ENDASM konstrukcije.
Oscilator
|
Minimalno kašnjenje
|
3(3.58)
|
20 µs
|
4
|
24 µs
|
8
|
12 µs
|
10
|
8 µs
|
12
|
7 µs
|
16
|
5 µs
|
20
|
3 µs
|
25*
|
2 µs
|
32*
|
2 µs
|
33*
|
2 µs
|
40**
|
2 µs
|
* samo PIC17Cxxx i PIC18Cxxx ** samo PIC18Cxxx
Ova naredba pretpostavlja da je upotrebljen oscilator od 4MHz; ako se koristi druga vrednost za oscilator, potrebno je upotrebiti DEFINE OSC naredbu.
pauseus 1000 'pauza od 1 milisekunde
[nazad]
PEEK
peek address, var
Čita registar na adresi 'address' i smešta vrednost u promenljivu 'var'.
Specijalni registri PIC kontrolera, kao što su A/D konvertori i dodatni I/O
portovi, mogu da se čitaju korišćenjem ove naredbe. Medjutim, svim registrima
može se, i treba, prići bez korišćenja PEEK i POKE naredbi. Svi registri PIC
kontrolera se smatraju za 8-mo bitnu promenljivu od strane PBP-a i mogu se
koristiti kao bilo koja druga 8-mo bitna promenljiva, kako za direktno čitanje
tako i za druga izračunavanja. Da naglasimo: PEEK i POKE naredbe ne bi
trebalo nikada koristiti u PBP programu.
[nazad]
POKE
poke address, value
Upisuje vrednost 'value' u registar na adresi 'address'. U specijalne
registre, kao što su A/D konvertori i dodatni I/O portovi, može se upisati
vrednost ovom naredbom. Medjutim, svim registrima može se, i treba, prići
bez korišćenja PEEK i POKE naredbi. Svi registri PIC kontrolera se smatraju
za 8-mo bitnu promenljivu od strane PBP-a i mogu se koristiti kao bilo koja
druga 8-mo bitna promenljiva, kako za direktno čitanje tako i za druga izračunavanja.
Da naglasimo: PEEK i POKE naredbe ne bi trebalo nikada koristiti u PBP
programu.
[nazad]
POT
pot pin, scale, var
Čita potenciometar ili neki drugi otpornik priključen na 'pin'. 'Pin'
može da bude konstanta, od 0 do 15, ili promenljiva koja sadrži broj od 0
do 15, ili ime pina (npr. porta.0). Otpornost se meri pomoću vremena za koje
se prazni kondenzator kroz otpornik (tipično od 5K do 50K). 'Scale' se koristi
za podešavanje za razne RC konstante. Za velike RC konstante, 'scale' treba
postaviti na minimalnu vrednost, tj. na 1, a za male na 255. Ako je 'scale'
ispravno podešen, 'var' bi trebalo da bude 0 pri najmanjem otporu, a 255 pri
najvećem. Nažalost, 'scale' mora da se odredi eksperimentalno. Da bi ste to
uradili, postavite potenciometar na maksimalnu vrednost i pročitajte vrednost
'var' dok je vrednost za 'scale' postavljena na 255. Pod tim uslovima u 'var'
će se naći odgovarajuća vrednost za 'scale'.
pot 3, 255, b0 'pročitaj potenciometar na pinu 3 i smesti vrednost u b0 serout 0, n2400, [#b0]'pošalji vrednost b0 serijski na pin 0
[nazad]
PULSIN
pulsin pin, state, var
Ova naredba meri širinu impulsa na pinu 'pin'. Ako je 'state' jednako
nula, meri se trajanje perioda dok je na pinu logička nula, a ako je 'state'=1,
meri se trajanje dok je na pinu logička jedinica; rezultat se smešta u promenljivu
'var'. Ako se željeni impuls nikada ne pojavi ili traje predugo, u 'var' se
smešta vrednost 0. Ako se za 'var' upotrebi 8-mo bitna promenljiva, koristi
se samo nižih osam bitova od 16-to bitne vrednosti. 'Pin' može da bude konstanta,
od 0 do 15, ili promenljiva koja sadrži broj od 0 do 15, ili ime pina (npr.
porta.0).
Rezolucija ove naredbe zavisi od frekvence upotrebljenog oscilatora. Ako se
koristi 4 MHz, rezolucija je 10 µs, a ako se koristi 20 MHz, rezolucija je
2 µs. DEFINE OSC nema efekta na ovu naredbu, rezolucija se menja u zavisnosti
od stvarne frekvence oscilatora.
pulsin portb.4, 1, w3 'meri trajanje impulsa na pinu rb4 i rezultat smešta u w3
[nazad]
PULSOUT
pulsout pin, period
Generiše impuls na pinu 'pin' dužine 'period'. Impuls se generiše dvostrukom
promenom stanja pina, tako da početno stanje na pinu odredjuje da li će biti
generisan impuls ili pauza. 'Pin' može da bude konstanta, od 0 do 15, ili
promenljiva koja sadrži broj od 0 do 15, ili ime pina (npr. porta.0).
Rezolucija ove naredbe zavisi od frekvence upotrebljenog oscilatora. Ako se
koristi 4 MHz, rezolucija je 10 µs, a ako se koristi 20 MHz, rezolucija je
2 µs. DEFINE OSC nema efekta na ovu naredbu, rezolucija se menja u zavisnosti
od stvarne frekvence oscilatora.
pulsout portb.5, 100 'pošalji impuls na RB5 su trajanju od 1ms (pri osc=4 MHz)
[nazad]
PWM
pwm pin, duty, cycle
Šalje impulsno-širinsko modulisanu povorku impulsa na 'pin'. Svaki
PWM ciklus se sastoji od 256 koraka. 'Duty' ciklus za svaki PWM ciklus se
kreće od 0 (0%) do 255 (100%) i predstavlja procenat ispune PWM impulsa. PWM
ciklus se ponavlja 'cycle' puta. 'Pin' može da bude konstanta, od 0 do 15,
ili promenljiva koja sadrži broj od 0 do 15, ili ime pina (npr. porta.0).
Vreme trajanja jednog cilkusa zavisi od frekvence oscilatora; ako je frekvenca
4 MHz, svaki ciklus traje približno 5 ms, a ako je 20 MHz, trajanje jednog
ciklusa je približno 1 ms. DEFINE OSC nema efekta na ovu naredbu, rezolucija
se menja u zavisnosti od stvarne frekvence oscilatora.
'Pin' se postavlja kao izlaz neposredno pre generisanja impulsa i postavlja
se kao ulaz nakon završenog generisanja. PWM izlaz na pinu nije za upotrebu,
pa je potrebno staviti neki filter. Obično RC kolo može da se upotrebi kao
jednostavan D/A konvertor.
pwm portb.7, 127, 100 'šalje 100 PWM impulsa sa 50% ispune na RB7
[nazad]
RANDOM
random var
U promenljivu 'var' smešta pseudo slučajni broj u intervalu od 1 do
65535, što znači da 'var' mora da bude 16-to bitna promenljiva. Broj koji
se dobije zove se pseudo slučajni jer je dobijen primenom matematičke formule.
Nizovi sa promenljivim indeksom ne mogu da se koriste u ovoj naredbi, dok
nizovi sa fiksnim indeksom mogu.
random w4 'smešta pseudo slučajni broj u promenljivu w4
[nazad]
RCTIME
rctime pin, state, var
RCTIME meri vreme koje 'pin' provede u stanju 'state'; to je, u stvari,
polovina naredbe PULSIN. 'Pin' može da bude konstanta, od 0 do 15, ili promenljiva
koja sadrži broj od 0 do 15, ili ime pina (npr. porta.0).
RCTIME može da se koristi za merenje otpora potenciometra ili nekog drugog
otpora. Otpornost se meri pomoću vremena za koje se prazni kondenzator kroz
otpornik (tipično od 5K do 50K). Rezolucija ove naredbe zavisi od frekvence
upotrebljenog oscilatora. Ako se koristi 4 MHz, rezolucija je 10 µs, a ako
se koristi 20 MHz, rezolucija je 2 µs. DEFINE OSC nema efekta na ovu naredbu,
rezolucija se menja u zavisnosti od stvarne frekvence oscilatora.
Ako pin nikada ne promeni stanje, naredba vraća vrednost 0.
low portb.3 'isprazni kondenzator za početak pause 10 'prazni ga 10 ms rctime porb.3, 0, w0 'pročitaj potenciometar priključen na RB3
[nazad]
READ
read address, var
Čita sadržaj EEPROMA ugradjenog u čip sa adrese 'address' i vrednost
smešta u promenljivu 'var'. Naredba READ radi samo sa mikrokontrolerima koji
imaju "direktni" EEPROM na sebi, kao što su PIC16F84 ili PIC16C84; ova naredba
ne radi sa mikrokontrolerima kod kojih ugradjeni EEPROM ima I2C interfejs,
kao što su 12CE67X ili 16CE62X. Kod njih upotrebite naredbu I2CREAD.
read 5, b2 'čita sadržaj adrese 5 EEPROM-a i smešta u promenljivu b2
[nazad]
READCODE
READCODE address, var
Čita lokaciju programske memorije na adresi 'address' i rezultat smešta
u promenljivu 'var' koja je tipa "word". PIC16F87x kontroleri dozvoljavaju
da se programski kod čita i upisuje za vreme rada kontrolera. Iako ova tehnika
samomodifikujućeg programa može da bude opasna, ona može da omogući smeštanje
i čuvanje podataka od 64 do 256 bajtova i mora da se vodi računa da se ne
prepiše aktivni program.
readcode 100, w 'čita adresu 100 programske memorije i sadržaj smešta u promenljivu w
[nazad]
RESUME
resume {label}
Nastavlja izvršavanje programa od adrese na kojoj je prekinut zbog
izvršavanja interapta. Ova naredba je slična naredbi RETURN, ali se koristi
na kraju PBP interapt rutine. Ako se opciono upotrebi labela 'label', program
će nastaviti izvršavanje od te labele, umesto da nastavi tamo gde je prekinut.
U tom slučaju nijedna adresa povratka koja se čuva na steku neće više biti
dostupna. Za više informacija, pogledajte naredbu ON INTERRUPT.
[nazad]
RETURN
return
Ova naredba omogućava povratak iz potprograma i nastavlja izvršavanje
glavnog programa od naredbe koja se nalazi iza naredbe GOSUB, koja je pozvala
potprogram.
gosub sub1 'idi na potprogram na labeli sub1 ... ... sub1: serout 0, n2400, ["Lunch"] 'pošalji "Lunch" serijski na pin 0 return 'vrati se iz potprograma u glavni program iza naredbe GOSUB
[nazad]
REVERSE
reverse pin
Ako je 'pin' bio ulaz, postaje izlaz i obrnuto. 'Pin' može da bude
konstanta, od 0 do 15, ili promenljiva koja sadrži broj od 0 do 15, ili ime
pina (npr. porta.0).
output 4 'pin 4 postavi kao izlaz reverse 4 'promeni smer pina 4, tj. postavi ga kao ulaz
[nazad]