Software projekti

Autor: Milan Vukobrat

E-mail: mvuk@eunet.yu

 

PISANJE PROGRAMA U BASIC STAMP-u

U trećem nastavku serijala o BASIC STAMP modulu biće reči o elementima PBASIC-a, njegovoj strukturi i načinu pisanja programa.

Editor

Pokretanjem programa STAMP.exe ( iz DOS-a, pokretanje iz Windows-a se ne preporučuje) dobija se jednostavan editor čije komande nije potrebno posebno objašnjavati.
Komandom Load punite EEPROM Basic Stamp-a (čime program počinje da se izvršava), odmah pravite korekcije i pratite vrednosti varijabli koje su od interesa (komanda DEBUG) - ukratko, obavljate sav posao.

Promenljive

PBASIC poznaje definiciju varijabli na nivou bita (Bit Names), bajta (Byte Names) i reči (Word names). U Basic Stamp-u postoji ukupno 16 bajta RAM-a predviđenog za ovu namenu, s tim što su 2 bajta predviđena za I/O linije. Tabela 1 prikazuje memorijsku mapu:

Word name Byte name Bit name Napomena
Port Pins Pin0-Pin7 (1)
  Dirs Dir0-Dir7 (2)
W0 B0
B1
Bit0-Bit7
Bit8-Bit15
(3)
W1 B2
B3
   
W2 B4
B5
   
W3 B6
B7
   
W4 B8
B9
   
W5 B10
B11
   
W6 B12
B13
  (4)

Napomene:
(1) I/O pinovi; bit adresabilni
(2) I/O pin kontrola; bit adresabilni “ 0 “ Input, “ 1 “ - Output
(3) Bit adresabilni
(4) Zauzeto ako koristite GOSUB instrukciju

Dakle, postoje 16-bitne reči kao što su Port ili W0, na primer. Svaka reč ima 2 bajta (Port ima bajte koji se zovu Pins i Dirs, a reči W0 do W6 imaju bajte koji počinju slovom B).
Pojedini bajtovi mogu se individualno kontrolisati na nivou bita (to su Pins, koji ima bite sa imenima Pin0 do Pin7, Dirs koji ima bite sa imenima Dir0 do Dir7, B0 koji ima bite sa imenima Bit0 do Bit7 i B1 koji ima bite sa imenima Bit8 do Bit15).

Port je namenjen za kontrolu I/O linija. Da biste to izveli, prvo morate u bajt Dirs upisati direkciju (smer), tj. odrediti koje linije treba da budu ulazne (Input), a koje izlazne (Output). Upisana jedinica označava da I/O pin postaje izlaz, a nula da postaje ulaz. Na primer, naredbom

Dirs = % 11111111

proglašavate sve I/O pinove (ima ih 8, da podsetimo) za izlazne. Znak % označava da je broj koji sledi iza njega u binarnom obliku. Naredbom

Dirs = %00001111

proglašavate I/O pinove Pin0,Pin1,Pin2 i Pin3 za izlazne, dok su Pin4,Pin5,Pin6 i Pin7 proglašeni za ulazne.
Kada se određeni Pin proglasi za izlazni, upisivanjem 0 ili 1 u njegovu bit varijablu, ta vrednost se zaista i fizički pojavi na pinu Stamp modula. Na primer, naredbe

Dirs = % 11111111
Pins = %00000000

za posledicu imaju da su svi I/O pinovi Basic Stamp-a proglašeni za izlazne i da su u sve upisane nule. Poželjno je da u zaglavlju programa imate naredbom Dirs jasno definisanu situaciju oko I/O pinova - program će biti pregledniji i manje su mogućnosti zabune oko toga šta je šta u samom programu.

Predstavljanje konstantnih vrednosti

Prilikom pisanja programa, kada koristite konstante, treba se držati sledećih pravila:

Konstanta Predznak Primer
Decimalni broj Nema 125
Hex $ $65
Binarni broj % %10101010
ASCII "   " "PBASIC"

Korišćenje promenljivih

U programu slobodno možete koristiti rezervisane oznake iz Tabele1. Problem je, međutim, u tome što program gubi na razumljivosti (za kratko vreme se više nećete sećati šta je značilo W0 ili Bit1 u programu).
Zato je bolje koristiti direktivu Symbol koja dodeljuje nama razumljiviju oznaku za varijablu. Na primer

Symbol START = B0

dozvoljava da se posle ove definicije umesto bajta B0 u daljem toku programa piše START, pa će recimo naredba

If START = 0 then ...

biti sasvim razumljiva.

Labele

Kao i u običnom BASIC-u, labele označavaju mesta u programu gde nešto počinje ili gde se treba vraćati.
U PBASIC-u labele ne smeju počinjati brojem i ne mogu biti ključne reči, tj. PBASIC naredbe.
Kada se prvi put navodi, labela treba da završi sa : (dve tačke). Kasnije se samo navodi ime labele. Na primer

Test: B0 = 3
.
.
.
Goto Test

Komentari

Sav tekst koji sledi posle apostrofa ( ˘ ) biće ignorisan od strane PBASIC-a i služi za pisanje napomena ili komentara.

  Operacija
+ Sabiranje
- Oduzimanje
* Množenje
** MSP množenja
/ Deljenje
// Remainder
MIN Minimum
MAX Maksimum
& AND
| OR
^ XOR
&/ AND NOTT
|/ OR NOT
^/ XOR NOT

Matematičke operacije

PBASIC poznaje samo celobrojnu aritmetiku i izvodi operacije striktno s leva na desno ( recimo 2 + (3 * 3) je kod njega 15 jer prvo sabere 2 i 3, pa množi sa 3, umesto 11, kako mi računamo prema prioritetu izvođenja operacija). Operacije su prikazane u tabeli levo.

Na primer

B0 = B0 - 1 min 5

ne dozvoljava da B0 pri dekrementu (smanjenju) dobije vrednost manju od 5 ili

Bit0 = Bit3 &/ Bit2

(Logička operacija na nivou bita: Bit0 sadržaće rezultat Bit3 AND NOT Bit2)

Ovim praktično i završavamo prikaz opštih mogućnosti BASIC STAMP-a. Ostalo je stvar prakse.


Pročitajte više o ovoj temi
Basic stamp
Više tastera jednom linijom 
Samogradnja Basic Stamp modula
PWM
Eksperimentalna pločica
Taster sa dve brzine

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji