|
BASCOM-8051:
Windows BASIC kompajler za 8051
Verujem
da je većina nas započinjala svoje računarsko
opismenjavanje - programiranje uz pomoć BASIC-a jer je bio izuzetno
lak za rad. Zamislite sada tu lakoću pisanja programa pomoću
BASIC-a ali ovog puta pri programiranju mikrokontrolera...
Samo
ime BASIC je skrećenica od: Begginers All-purpose Simbolic
Instruction Code. Jednostavno rečeno programski jezik za početnike.
Ovaj atribut, "za početnike", ga je dugo pratio te mnogi
programeri koji su "držali" do sebe i svog programerskog
renomea, često su ga bez posebnih razloga izbegavali.
Pa ipak, svedoci smo da i posle toliko vremena, čak i pojava novih
programskih jezika, BASIC zauzima zavidno mesto u masovnosti upotrebe a i
onaj nesretni atribut ga polako napušta. Postao je moćna, savremena,
široko priznata programska alatka.
A kakvo je stanje u oblasti programiranja mikrokontrolera? Uglavnom se
programiralo pomoću asemblera, u skorije vreme sreće se C jezik
ali u veoma poznatom nam BASIC-u, može se reći, skoro nimalo.
No vratimo se samom naslovu ovog članka. BASCOM-8051 je programski
produkt koji ćemo u nastavku opisati i pokušati da Vas zaintrigiramo
za isti. Ukoliko ste zaljubljenik mikrokontrolera i njihovog programiranja
ili se možda time profesionalno bavite, evo prikaza jedne izuzetno
zanimljive alatke za tu namenu.
MIKROKONTROLERI...
Svima
nama koji se bavimo mikrokontrolerima je dobro poznat razvojni proces
pisanja-brisanja "programa" dok se ne dođe do konačnog
rešenja. Kako to lako i kratko izgleda ovako napisano na papiru. A u
praksi... Pa još ako program upisujemo u klasičan EPROM...
No tehnologija je napredovala, pojavili su se mikrokontroleri sa FLASH
memorijom pa ISP (In System Programming - omogućuju nam programiranje
kontrolera bez vađenja istog iz ciljnog uređaja) pa još
razno-razna pomagala ali softverske alatke sa kojima sve to obavljamo se u
glavnom nisu menjale (mislim, mi ih nismo menjali) baš nešto naročito
- ili da budemo iskreni, nismo bili pri parama da sebi priuštimo nekakav
ozbiljan razvojni sistem u nekom višem programskom jeziku, sa dibagerom i
drugim pomagalima (čast izuzecima).
Uglavnom se pisalo u asembleru, nadgledalo i simuliralo opet na nekim
drugim softverskim paketima, programiralo se na (pravljenim)
programatorima za koje je obično bilo problema da se nabavi nova
verzija programa za podršku novog tipa mikrokontrolera i...
...
...i sve je to na kraju ipak i radilo.
BASCOM
= BASic COMpiler
No
da li sada može sve to nekako lakše? Naravno. Upravo pomenuti
BASCOM-8051 je sjajno rešenje za gore opisani scenario. Radi se o BASIC
kompajleru za Intel-ovu familiju MCS-51 mikrokontrolera i njegovih
derivata koje danas proizvode Philips, Siemens, Dallas, Atmel, Temic i
drugi.
Holandska firma MCS Electronics je programskim paketom BASCOM-8051
obuhvatila sledeće komponente razvojnog sistema:
• Editor
• BASIC kompajler
• Asembler
• Simulator
• Terminal emulator
• LCD dizajner
• LIB menadžer
• Programator (programski deo)
Celokupan softver je pisan za MS Windows 95/98/NT. Isporučuje se na
tri diskete i posle raspakivanja arhiva i startovanja "setup"
programa možemo se upustiti u rad sa BASCOM-om. Jedna mala napomena u
vezi same instalacije, instalaciona procedura zahteva da imate prijavljen
bar jedan štampač na vašem računaru pre startovanja
"setup" programa. Dakle ukoliko nemate instaliran štampač
prvo instalirajte štampač pa tek potom pokrenite instalaciju
BASCOM-a. Naravno da štampač ne morate imati fizički priključen.
IMAM
ČAST DA NAJAVIM...
Možda
se pitate pa zašto vas gnjavim sa svim ovim detaljima oko instalacije?
Evo i odgovora. Uspeo sam, prvenstveno zahvaljujući predusretljivosti
gospodina Mark C. Alberts-a iz MCS Electronics, da ekskluzivno za časopis
Mikro Elektronika pribavim BASCOM-8051 DEMO koji se može download-ovati
sa sajta Mikro Elektronike! Koliko je to sve ekskluzivno procenićete
sami kada Vam kažem da i pored veoma razvijene distributivne mreže
(prodaje se na svim kontinentima) pomenuti DEMO u svetu distribuira samo
još jedan časopis i isti (misli se na DEMO) se ne može naći ni
na sajtu MCS Electronics (www.mcselec.com)
...
Dakle, nećete morati da žmurite i zamišljate kako izgleda i radi
ovo o čemu čitate. Imate mogućnost da po čitanju ovog
prikaza odmah probate i uverite se u valjanost istog. DEMO verzija je
potpuno funkcionalna sa jedinim ograničenjem da generisani kod ne može
biti veći od 2KB.
Cilj ove DEMO verzije nije da Vam omogući da pišete
"program", već čisto edukativan - da testirate rad
pojedinih BASIC naredbi, mada se u 2KB da dosta toga napisati...
Pa da nastavimo sa opisom kako bi smo lakše potom sve i isprobali.
RAZVOJNO
OKRUŽENJE
| Startovanjem
BASCOM-a otvara nam se IDE (Integrated Development Enviroment) - razvojno
okruženje unutar koga ćemo obavljati sve poslove te možemo započeti
sa pisanjem programa. Radi se o kvalitetnom editoru koji poznaje sve
"cake" na koje nas je Windows radno okruženje naviklo, na
primer, pritiskom na F1 funkcijski taster otvara nam se help sistem sa
objašnjenjem za naredbu na kojoj je bio kursor. Pored objašnjenja
sintakse za svaku naredbu, dat je i mali primer upotrebe naredbe koji možemo
iskopirati u editor ukoliko želimo da ga isprobamo ili koristimo.
|

|
|
Slika
1. Izgled razvojnog okruzenja BASCOM-a |
| |
|
 |
Na slici 2. je dat prikaz tool bar-a t.j. dugmića sa ikonama pa
ćemo ih redom pregledati. Krenimo s leva na desno. Prve dve ikone su
verujem opšte poznate te ih neću posebno ni opisivati. Treća
ikona je "Save File" a sledeća "Save File As". Lično
mi se veoma dopada što je opcija snimanja tekućeg programa pod
drugim imenom "na dohvat miša". Narednih sedam ikona su opet opšte
poznate te idemo na ikonu sa dvogledom koja služi za nalaženje
specificiranog teksta. Zatim sledi ikona sa papirom i "štrikliranim"
znakom (neki bi rekli, kao logo na nekim poznatim patikama). Pritiskom na
ovo dugme vrši se sintaksna provera napisanog programa i nikakvi fajlovi
se ne generišu.
|
|
Slika
2. Toolbar
|
| |
|

|
|
Slika
3. Izgled report fajla |
Sledi ikona sa čipom. Ovim dugmetom startujemo kompajler. Kao
rezultat (ukoliko nema sintaksnih grešaka) dobijamo binarni - izvršni
kod za naš mikrokontroler. Propratni fajlovi koji se u ovom procesu
generišu se mogu po želji uključiti/isključiti (meni - Options
/ Compiler /Output) a na raspolaganju su nam HEX datoteka, HEX datoteka u
starom Intel-ovom formatu, Debug fajl (koristi ga simulator), Report fajl
te Error fajl.
Sledeća po redu je ikona sa rukom i papirom i omogućava nam uvid
u rezultat kompajliranja (Report fajl). Primer jednog izveštaja o
kompajliranju je dat na slici 3. Pored osnovnih "sistemskih"
podataka (verzija kompajlera, tip mikrokontrolera, datum i sl.) imamo
detaljan prikaz svih upotrebljenih resursa mikrokontrolera kao i spisak
korištenih promenljivih, njihov tip, adrese na kojima se nalaze i to u
heksadecimalnoj i decimalnoj notaciji. Na kraju liste, ne vidi se na
slici, stoji spisak korištenih konstanti i njihove vrednosti.
Sledeća u nizu je ikona sa čipom ali ovog puta crvene boje.
Pritiskom na ovo dugme pokrećemo simulator u koji se automatski učitava
tekući program iz editora. Naravno, potrebno je da program bude
prethodno i kompajliran jer simulator osim izvornog koda učitava i
DBG fajl koji se generiše tek prilikom kompajliranja. Ovo je važno imati
na umu naročito ako smo već kompajlirali program pa potom dodali
- izmenili nešto. Ukoliko ponovo ne kompajliramo program u simulatoru
ćemo imati prethodnu verziju!
Pretpostavljam da svi već naslućujete čemu služi dugme sa
ZIF-om kao ikonom. To je poziv - start programatora.
| U zavisnosti kako
podesimo razvojno okruženje (Option stavka u meniju) pritiskom na ovo
dugme možemo samo "pozvati" program za rad sa programatorom i
potom ručno odraditi sve potrebno ili pak podesiti da automatski započne
programiranje uz, opciono, i verifikaciju po obavljenom programiranju. Sam
BASCOM podržava, dakle ima ugrađen softver za rad sa jedanaest vrsta
programatora i plus podršku eksternom programatoru - programatoru kojeg
ste napravili/kupili a nije u listi onih jedanaest pomenutih. Na slici 4.
imate prikaz konfiguracionog ekrana za izbor programatora koji je podešen
za rad sa eksternim programatorom. Vratićemo se na programatore malo
kasnije a sada da polako završimo započeti opis. |

|
|
Slika
4. Podešavanje opcija programatora
|
|
Sledeća ikona pretstavlja terminal emulator. Da ne bi ste napuštali razvojno okruženje radi testiranja serijske
komunikacije vašeg uređaja u razvoju, možete se poslužiti sasvim
solidnim, ugrađenim terminal emulatorom. Ako pak koristite neki od
monitorskih programa za Vašu razvojnu ploču, opcijom "File
Upload" možete "preneti" tekući program u HEX formatu
monitorskom programu. Unutar podešavanja za monitorski program, možete
opciono specificirati i zaglavlja koja će biti poslata pre odnosno
posle slanja samog HEX fajla kao što je prikazano na slici 5. Takođe
se, po želji, može specificirati i kašnjenje u ms posle svake poslate
linije. Jedino u slučaju da posedujete ALTAIR ROM, umesto HEX
datoteke šalje se binarni fajl. |

|
|
Slika
5. Podešavanje opcija monitora
|
Komunikacija se obavlja na brzini (Baud
Rate-u) koja je određena za terminal emulator sem za spomenuti ALTAIR
ROM gde je podrazumevana komunikacija 115K Baud-a. Započeti prenos se
prekida pritiskom na ESC taster. Podesivi parametri terminal emulatora su
prikazani na slici 6.
Ostale su nam još dve ikone. Znak pitanja je, naravno, startovanje help
sistema a vrata su za "izlazak" iz BASCOM IDE-a - kraj rada.
Od stavki u meniju skrenuo bih pažnju na sledeće:
• LCD dizajner
• LIB manager
Izborom Tools / LCD designer otvara nam se prozor kao na slici 7. Poznato
Vam je da standardni LCD ima pored CG ROM-a i CG RAM (Character Generator
RAM) u kome možemo definisati proizvoljne znake i/ili simbole (ili koji
možemo koristiti kao običan RAM za naš kontroler). Ovom alatkom možemo
lako dizajnirati UDG (User Defined Graphics) karaktere pri radu sa LCD-om.
Da ne bi smo "peške" preračunavali setovane bite za
definisani karakter, potrebno je jednostavno ucrtati pomoću miša željeni
znak u matricu kao na slici i pritiskom na OK dugme, u programu na mestu
gde nam se nalazio kursor, dobijamo:
Deflcdchar ?,2,4,14,17,16,16,17,14
|
 |
| Slika
6. Podešavanje opcija komunikacije
|
| |
 |
|
Slika
7. Korisnički znak
|
t.j. BASCOM-ovu naredbu za generisanje nacrtanog znaka. Jedino je potrebno
umesto znaka pitanja upisati broj od nula do sedam (jer LCD ima osam UDG
karaktera) odnosno adresu na kojoj će biti smešten definisani znak.
Sada kada nam zatreba prethodno definisani znak jednostavno koristimo
standardnu naredbu za ispis na LCD i potom željeni UDG karakter:
LCD Chr(n)
gde je n adresa UDG karaktera. Za detalje pogledajte u Help-u.
| U okviru
konfigurisanja BASCOM-a za rad sa LCD-om (Options / Compiler / LCD)
postoji i "check box" kojim se nalaže LCD dizajneru da gornja
tri bita budu setovana (slovna matrica je 5x8 bita) - slika 8. Naime,
postoje LCD-ovi koji ne prikazuju ispravno definisane karaktere ukoliko
nemaju zadovoljen prethodno pomenut uslov! Na slici 8. vidimo i mogućnost
da BASCOM-u "saopštimo" na kojim pinovima su vezani pojedini
signali LCD-a, tako da u programu samo koristimo naredbe za rad sa LCD-om
dok BASCOM pri kompajliranju vodi računa o hardverskom povezivanju i
generisanju signala. Kažem imamo mogućnost, pošto se isto može
uraditi i eksplicitno u samom programu naredbom: |

|
|
Slika
8. Podešavanje opcija kompajlera
|
CONFIG LCDPIN = PIN, DB4= P1.1, DB5=P1.2, DB6=P1.3, DB7=P1.4, E=P1.5,
RS=P1.6
čime se prethodno definisane vrednosti u Options/Compiler/LCD poništavaju.
Ne bih trebao da se duže zadržavam i objašnjavam podršku LCD-u u ovom
"uvodnom" delu, no moram da naglasim da je ona izuzetna. Tako na
primer, pored 4-bitne podrške LCD-a (tzv. smart mode) BASCOM možemo
konfigurisati i za rad sa 8 bita t.j. u BUS modu(direktiva
$LCD=&Haddress), kao i kombinaciju pomenutih modova - LCD se nalazi
mapiran u memorijskoj mapi mikrokontrolera ali radi sa 4 bita...
Za kraj ovog opisa ostalo mi je još da spomenem LIB menadžer. Ovo je
zapravo novitet koji postoji tek od verzije 1.0.0.20 a to je ujedno i
verzija DEMO BASCOM-a koji Vam nudimo.
|
Za kraj ovog opisa ostalo mi je još da spomenem LIB menadžer. Ovo je
zapravo novitet koji postoji tek od verzije 1.0.0.20 a to je ujedno i
verzija DEMO BASCOM-a koji Vam nudimo. Kada iz Tools/LIB manager izaberemo
ovu opciju, pojaviće nam se prozor kao na slici 9. Izborom biblioteke
sa leve strane dobijamo na uvid koje sve rutine sadrži dotična
biblioteka te možemo da ih dodajemo ili brišemo. Na ovaj način možemo
lako organizovati svoje rutine, no vremenom će biti dodate i
"interne" rutine BASCOM-a te će ih korisnici moći
sami, po potrebi, prilagođavati svojim specifičnostima. |

|
|
Slika
9. LIB menadžer
|
ISPOD
HAUBE
Pošto
smo se upoznali sa osnovama BASCOM-ovog razvojnog okruženja da vidimo sa
čime to zapravo raspolažemo t.j. šta BASCOM zapravo poseduje od
komandi i kako raspolaže resursima mikrokontrolera.
BASCOM program veoma liči na MS QBASIC t.j. na početku programa
je potrebno definisati sve korištene promenljive i njihov tip kao i sve
korištene potprograme - funkcije. U zavisnosti od tipa promenljive
definisano je i njeno memorisanje. Pa tako:
• Bit promenljiva zauzima 1/8 bajta (BASCOM "slaže" bit
promenljive tako da popunjava bit adresibilni deo internog RAM-a)
• Byte promenljiva se memoriše kao osmobitni broj bez predznaka. Opseg
vrednosti od 0 do 255.
• Integer (dva bajta) - memoriše se kao šesnaestobitni broj sa
predznakom. Opseg vrednosti od -32.768 do 32.767.
• Word (dva bajta) - memoriše se kao šesnaestobitni broj bez
predznaka. Opseg vrednosti od 0 do 65.535.
• Long (četiri bajta) - memoriše se kao tridesetdvobitni broj sa
preznakom. Opseg vrednosti od -2.147.483.648 do 2.147.483.647.
• Single (četiri bajta) - memoriše se kao tridesetdvobitni binarni
broj u skladu sa IEEE notacijom za pokretni zarez jednostruke preciznosti.
Opseg 1E-38 do 1E+38
• String - maksimalna dužina string promenljive je 254 bajta. Na kraju
svakog stringa postoji još jedan bajt vrednosti 0 koji označava kraj
stringa. Dakle string dimenzije 10 bajtova zauzima 11 bajtova memorije.
BASCOM inicijalizuje procesor i uključuje rutine iz biblioteka spram
korištenih naredbi u napisanom programu. Ono što uvek uradi je
inicijalizacija SP (Stek Pointer-a) i interne Error bit promenljive. Sve
ostalo je zavisno od korištenih naredbi. Ukoliko pak želimo da apsolutno
raspolažemo resursima mikrokontrolera, možemo pomoću kompajlerskih
direktiva $NOINIT i $NOSP naložiti kompajleru da ništa od resursa ne
inicijalizuje - zauzima.
Sve korištene promenljive se, ukoliko se drugačije ne navede, smeštaju
u interni RAM mikrokontrolera pa otuda i postoje ograničenja u vezi
maksimalnog broja korištenih promenljivih.
•· Maksimalni broj BIT promenljivih 120
• Maksimalni broj BYTE promenljivih 20
• Maksimalni broj INTEGER/ WORD promenljivih 10
Navedene cifre ipak treba uzeti sa rezervom jer se prvenstveno odnose na
"klasičan" 8051 mikrokontroler sa 128 bajta internog RAM-a.
Već za 8052 i slične mikrokontrolere koji imaju 256 bajta
internog RAM-a računica je drugačija (samo se ne povećava
broj bit promenljivih pošto se one memorišu u bit adresibilnoj zoni
RAM-a mikrokontrolera - u prvih 128 bajta RAM-a). Zatim, zavisno od broja
potprograma i njihovih gnežđenja zauzimamo i više prostora za SP,
te nije lako dati generalnu ocenu o zauzeću mikrokontrolerskih
resursa. U dokumentaciji se navodi podatak da je maksimalno zauzeće
memorije od strane kompajlera (sa SP-om) 56 bajta i da zavisi od korištenih
naredbi.
Spomenutu zavisnost zauzeća resursa mikrokontrolera pogledajmo na
sledećem primeru. Ukoliko naš program sadrži PRINT ili INPUT
naredbu BASCOM, po ugledu na poznati Intel-ov 8052AH-BASIC mikrokontroler
koji ima ugrađen BASIC interpreter, inicijalizuje TIMER1
mikrokontrolera kao "Baud rate" generator za serijsku
komunikaciju preko koje se vrši ispis odnosno unos podataka.
Drugi primer je vezan za korištenje interapt rutina. Na
"ulasku" u rutinu za obradu prekida BASCOM gurne na stek 23
registara (i isto toliko ih i skine sa steka na "izlasku") tako
da u prekidnoj rutini možete slobodno koristiti bilo koju naredbu pošto
je kompletan softverski kontekst glavnog programa sačuvan. Ukoliko
vam treba brži "odziv" pri obradi prekida, potrebno je da u
programu napišete:
ON Interrupt Label NOSAVE
(gde je Interrupt: INT0, INT1, SERIAL, TIMER0 ,TIMER1 ili TIMER2 a Label
labela na kojoj započinje obrada prekida). Opcija NOSAVE nalaže
kompajleru da ne generiše kod za čuvanje registara na stek. Sada je
na korisniku da u zavisnosti od upotrebljenih registara u samoj interapt
rutini iste na ulasku sačuva i po završetku restaurira - vrati im
vrednosti koje su imali na ulasku u rutinu.
Dakle, jedini pravi pokazatelj zauzeća resursa je izveštaj po
kompajliranju u kome imamo detaljan prikaz svih promenljivih i njihovih
adresa. Da bi se dobila još potpunija slika preporučljivo je po
kompajliranju pokrenuti simulator i simulacijom utvrditi maksimalnu dubinu
steka (ispisuje se u statusnoj liniji simulatora).
U slučaju da mikrokontroler raspolaže i eksternim RAM-om (na
razvojnoj - ciljnoj ploči) moguće je definisanje promenljivih i
u eksternom RAM-u. Isto tako i STRING promenljive mogu biti smeštene kako
u internom tako i u eksternom RAM-u, te u slučaju da se radi o
eksternom RAM-u BASCOM za njih pruža neograničenu podršku t.j.
jedino kapacitet Vaše eksterne memorije pretstavlja limit.
Imena promenljivih i labela mogu biti dužine do 32 karaktera. Maksimalni
broj ALIAS naredbi je 128. Maksimalni broj labela je 5000. Maksimalni broj
imena promenljivih je 1000 (ako nekome ovo nije dovoljno u MCS-u će
mu rado izaći u susret te napraviti specijalnu verziju za podršku i
većeg broja promenljivih). Maksimalni broj gnežđenja pojedinih
naredbi je:
• FOR .. NEXT 50
• IF .. THEN 50
• DO .. LOOP 50
• WHILE .. WEND 50
• SELECT .. CASE 25
DIREKTIVE
KOMPAJLERA
Spomenuo
sam već nekoliko kompajlerskih direktiva i BASCOM-ovih naredbi. Kako
detaljan opis svake direktive i naredbe zahteva prostor jedne knjige, u
nastavku ću dati čisto spisak ključnih reči a opisaću
samo pojedine, "interesantne" direktive - naredbe da Vam olakšam
sam početak rada sa BASCOM-om.
Za sve detalje vezane za sintaksu i praktičnu primenu BASCOM-ovih
naredbi (i direktiva), osim u helpu možete pogledati i u primerima koje
dobijate uz BASCOM. U procesu instalacije BASCOM-a biće kreiran i
SAMPLES direktorijum, odmah ispod samog BASCOM-ovog direktorijuma, u kome
imate primere upotrebe svake BASCOM-ove naredbe. Savetujem Vam da obavezno
pogledate date primere te da ih probate i pod simulatorom.
Od kompajlerskih direktiva BASCOM poznaje sledeće:
• $ASM - $END ASM
• $INCLUDE
• $BAUD
• $CRYSTAL
• $DEFAULT XRAM
• $IRAMSTART
• $LARGE
• $LCD
• $MAP
• $NOBREAK
• $NOINIT
• $NONAN
• $NOSP
• $OBJ
• $RAMSIZE
• $RAMSTART
• $REGFILE
• $ROMSTART
• $SERIALINPUT
• $SERIALINPUT2LCD
• $SERIALOUTPUT
• $SIM
Jedna od veoma lepih osobina BASCOM-a je i to što omogućava lako
"preplitanje" asemblerskog koda i BASIC-a. Direktivama $ASM -
$END ASM označavamo blok u kome sledi čisto asemblerski kod. No,
BASCOM dozvoljava da i bez prethodnog "upozorenja" napišemo
naredbe u asembleru. Upitaćete se pa čemu onda formalizam najave
asemblerskog koda? Odgovor je, zbog labela. Svaku napisanu labelu BASCOM
interno označava tako što joj ispred doda tačku. Na primer:
GOTO Test
...
Test:
BASCOM "prevodi" u sledeći asemblerski kod:
LJMP .Test
...
.Test:
Vidimo da ukoliko želimo da referenciramo neku BASIC labelu iz asemblera,
treba da koristimo ime labele ispred koje stoji još i tačka.
Ako u asemblerskom kodu želimo da referenciramo labelu koju neće
koristiti BASIC već samo asembler, tada je potrebno staviti uskličnik
ispred labele, kao u sledećem primeru:
LJMP Test
...
!Test:
Uskličnikom se inače "saopštava" kompajleru da sledi
(jedna) asemblerska naredba. Ovo je važno zapamtiti za slučaj da vam
zatreba SWAP asemblerska naredba! Kako postoji identična po sintaksi
BASIC naredba SWAP (ali sasvim drugačija po semantici), do željene
asemblerske naredbe dolazite kucajući:
!SWAP A
Ukoliko koristite pomenute direktive $ASM i $END ASM, unutar njih možete
referencirati labele shodno gornjim pravilima. Na primer:
Petlja:
$Asm
djnz a, Test
sjmp .Petlja
Test:
$End Asm
Kada smo već kod asemblera, da spomenem i mogućnost
referenciranja BASIC promenljive u asembleru. Jednostavno stavljanjem
promenljive u vitičastu (ili srednju) zagradu možemo referencirati
BASIC promenljivu unutar asemblerskog koda. Sledeći primer ilustruje
prethodno rečeno:
Dim var As Bit
Dim b1 As Byte
Dim w As Word
Reset var 'resetujemo promenljivu iz BASIC-a
setb švarć ' sada setujemo vrednost iz ASM-a
Print var
mov šb1ć,#5
Print b1
w=512
mov šb1ć,šw+0ć ; uzimamo niži bajt
Print b1 ' ispis: 0
mov šb1ć,šw+1ć ; uzimamo viši bajt
Print b1 ' ispis: 2
U prethodnom primeru kod referenciranja nižeg bajta šesnaestobitne
promenljive mogli smo i da izostavimo "+0". Obratimo pažnju i
na pisanje komentara. U BASCOM-u se komentar označava, pored uobičajene
komande REM, apostrofom a u asemblerskim linijama se može korisiti i tačka-zarez
(;) znak. Blok komentar se započinje sa '( (apostrof i otvorena
zagrada) a završava sa ') (apostrof i zatvorena zagrada).
Kao sledeću zanimljivu direktivu kompajlera, izdvojio bih $SIM. Ovom
direktivom se nalaže kompajleru da NE generiše kod za vremenske pauze
(tipa WAIT, WAITMS i DELAY) i prvenstveno je namenjena za potrebe
simulatora. Da ne bi smo čekali na izvršenje pomenutih pauzi, koje
pri simulaciji znaju da se oduže, dovoljno je na početku programa
staviti ovu direktivu, kompajlirati program i potom pokrenuti simulator.
Ne zaboravite da obrišete pomenutu direktivu i ponovo kompajlirate
program pre nego što zapravo isprogramirate mikrokontroler po uspešnoj
simulaciji!
|
Uz $BAUD uvek ide i $CRYSTAL direktiva. Ovim direktivama se kompajer
konfiguriše za Baud Rate - brizinu serijskog komunikacionog kanala, te
kristal koji ćemo koristiti. Kako Baud Rate zavisi od upotrebljenog
kristala t.j. ne mogu se za sve vrednosti upotebljenih kristala dobiti sve
standardne brzine za komunikaciju, u izveštaju o kompajliranju imamo
podatak koliki će zapravo biti Baud Rate za upotrebljeni kristal, te
možemo videti da li se željena brzina može ostvariti sa izabranim
kristalom. |

|
|
Slika
10. Podešavanje fajla sa definicijom registara
|
Za kraj ovog skraćenog prikaza kompajlerskih direktiva, spomenuo bih
$REGFILE direktivu. Sa ovom direktivom nalažemo kompajleru da učita
fajl sa opisom registara za željeni mikrokontroler:
• REG51.DAT
• 8052.DAT
• 80C51.DAT
• 80C320.DAT
• 80C520.DAT
• 80515C.DAT
• 80517.DAT
• 80535.DAT
• 80537.DAT
• 80552.DAT
• 89C1051.DAT
• 89C2051.DAT
• 89C4051.DAT
• 89S8252.DAT
Ime fajla je u stvari oznaka mikrokontrolera (sa izuzetkom REG51.DAT fajla
koji pretstavlja osnovni opis 8051). U pitanju su ASCII datoteke, te se
lako moze kreirati opis i nekog novog mikrokontrolera. Slično ranije
opisanim kompajlerskim direktivama, direktnim navođenjem ove
direktive poništavaju se prethodna podešavanja Options / Compiler / Misc
vezana za izbor mikrokontrolera (vidi sliku 10.). Upozorenje za prekoračenje
dužine generisanog koda važi samo za registrovanu verziju BASCOM-a
("check box" na slici 10.).
NAREDBE
BASCOM-a
U nastavku sledi spisak BASCOM-ovih naredbi sortiran
po abecedi.
Već i letimičan pogled na spisak otkriva bogat instrukcijski
set. Kako sam već napomenuo da se neću baviti detaljnijim opisom
svake naredbe, izdvojio bih samo nekoliko naredbi za ilustraciju komfora u
radu sa BASCOM-om.
Pored već spomenute sjajne podrške za rad sa LCD-om, BASCOM u svom
instrukcijskom setu ima i skup komandi koje rade sa SPI, MicroWire, 1Wire
te I2C magistralama za serijsku komunikaciju sa perifernim integrisanim
kolima.
Skup SPI naredbi (CONFIG SPI, SPIIN, SPIOUT) se može koristiti i kod
mikrokontrolera koji nemaju hardverski ugrađen SPI. Dovoljno je na početku
programa specificirati:
Config SPI = SOFT, DIN = P1.0 , DOUT = P1.1, CS = P1.2, CLK = P1.3
i sve što nam je posle toga potrebno da bi smo pročitali, recimo
neki SPI A/D konvertor, je:
SPIIN var, num
gde je var niz od num elemenata tipa bajt.
Slično je sa naredbama za rad sa MicroWire serijskim interfejsom. Na
raspolaganju su nam CONFIG MICROWIRE, MWREAD , MWWRITE , MWWOPCODE. Za
detaljan opis primene pogledajte MICROW. BAS program u poddirektorijumu
SAMPLES.
Dok su SPI i MicroWire široko prihvaćeni i od strane drugih proizvođača
elektronskih komponenti (SPI je patent Motorola-e a MicroWire National
Semiconductor-a), 1WIRE za sada poseduju isključivo DALLAS-ovi
produkti. |

|
|
Tabela 1. Sve instrukcije BASKOM Bejzika |
Rad sa ovim komponentama nam je izuzetno olakšan BASCOM-ovom
podrškom. Od ove verzije je čak uključena podrška za 1WIRE
interfejs na više pinova t.j. možemo imati više 1WIRE
"kanala" na istom mikrokontroleru (pošto neke 1WIRE komponente
nisu adresibilne te se ne može više njih vezivati na istu liniju).
|

|

|
|
Slika
11. I2C komunikacija |
Slika
12. Podešavanje I2C komunikacije |
BASCOM podržava i Philips-ov I2C serijski interfejs i to takođe
putem softverske emulacije. No za razliku od prethodnih slučajeva,
ovde nam je potreban i dodatni hardver. Na slici 11. je prikazan
"dodatni hardver" da bi smo AT89C2051 mikrokontroleru omogućili
da radi sa I2C interfejsom. Radi se o prostom vezivanju četiri
otpornika. Sada je još samo potrebno da BASCOM-u "saopštimo"
na kojim pinovima mikrokontrolera će se nalaziti I2C linije.
Startovanjem menija Options/Compiler/I2C otvara nam se prozor dat na slici
12. gde jednostavno pridružimo SCA i SDL linijama odgovarajuće
pinove. Posle ovoga možemo koristiti I2CSTART, I2CSTOP, I2CRBYTE,
I2CWBYTE, I2CRECEIVE, I2CSEND naredbe.
Verovatno ste se zapitali čemi služi RC5-port "combo box"
na slici 12. Radi se o interesantnoj naredbi za prijem i dekodovanje (kod
i adresa) komande sa daljinskog upravljača - GETRC5. Ova komanda je
predviđena da, uz dodatni infracrveni senzor (tipa SFH506-36 -
Siemens), može dekodovati infracrvene daljinske upravljače koji su
kodirani po Philips-ovom RC5 standardu.
Povezivanjem kao na slici 13. i
upotrebom primera RC5.BAS bićete u mogućnosti da dekodujete RC5
daljinski upravljač. Eto zgodne tastature za Vaš budući uređaj...
Obzirom da je serijska komunikacija sa perifernim integrisanim kolima
veoma interesantna pri upotrebi mikrokontrolera, spomenuo bih još SHIFTIN
i SHIFTOUT naredbe. Koriste se kada želimo da u neku varijablu serijski učitamo
niz bitova (SHIFTIN) ili da iz neke varijable serijski prenesemo
(SHIFTOUT) niz bitova na određeni pin porta mikrokontrolera.
Sintaksa za pomenute akcije je:
SHIFTIN pin , pclock , var , option ŠPREĆ
SHIFTOUT pin , pclock , var , option
gde su korištene oznake:
pin - pin na portu koji će služiti za ulaz/izlaz
pclock - pin na portu koji će generisati CLOCK signal
var - promenljiva nad kojom se vrši učitavanje / slanje bitova |
 |
|
Slika
13. Povezivanje preko porta 232 |
Pomoću option parametara određujemo način rada i to u
skladu sa sledećim vrednostima:
0 - MSB (najveći težinski bit) se šiftuje prvi unutra/napolje na
silaznu ivicu CLOCK-a
1 - MSB se šiftuje prvi unutra/napolje na uzlaznu ivicu CLOCK-a
2 - LSB (najmanji težinski bit) se šiftuje prvi unutra/napolje na
silaznu ivicu CLOCK-a
3 - LSB se šiftuje prvi unutra/napolje na uzlaznu ivicu CLOCK-a
Ukoliko na ove vrednosti dodate četiri, izabrani način rada
će se odnositi na eksterni CLOCK signal. Na primer, ako za vrednost
option parametra navedete 5, definisali ste da će se učitavanje/slanje
bita vršiti na uzlaznu ivicu spoljašnjeg CLOCK signala.
U zavisnosti od upotrebljene promenljive biće generisan i broj šiftovanja.
Tako za bajt promenljivu imaćemo šiftovanje osam puta dok će se
za integer promenljivu desiti šesnaest šiftovanja.
Neobavezni deo SHIFTIN naredbe je PRE parametar (bez zareza) kojim se nalaže
semplovanje ulaznog signala pre nego što počne da se generiše CLOCK
signal. Bez PRE opcije prvo se CLOCK setuje, pa se sempluje ulazni signal
i potom se resetuje CLOCK linija.
Moglo bi se još dosta pisati o primerima i primenama BASCOM-ovih naredbi
obzirom da ima još dosta interesantnih naredbi ne svojstvenih drugim
kompajlerima (kao na primer GETAD2051 - naredba zasnovana na aplikaciji
gde se uz pomoć spoljašnjeg RC člana i ugrađenog
komparatora mikrokontrolera dobija jednostavan AD konvertor). No, kako
imate mogućnost da po download-ovanju pomenute DEMO verzije i sami
probate, prepustiću Vama da se sami upoznate i isprobate BASCOM-ov
set instrukcija.
SIMULATOR
U razvojnom procesu često nam zatreba da
evaluiramo - proverimo deo koda ili samo neku rutinu, pa ukoliko nemamo
adekvatnu softversku alatku nema nam druge nego da uzastopno programiramo
nove i nove verzije testnog programa do konačnog uspešnog ishoda. Uz
pomoć BASCOM-a pomenuti način evaluacije možete zaboraviti ili
bar drastično smanjiti broj iteracija, zbog ugrađenog simulatora
koji Vam stoji na raspolaganju.
|
Po kompajliranju programa, možete startovati simulator (ikona sa crvenim
integralcem) i otvoriće Vam se prozor kao na slici 14. Uočimo šest
celina na pomenutoj slici. U gornjem delu ekrana su navigacioni tasteri
ispod kojih se nalazi "watch window" prozor sa listom
promenljivih koje želimo da nadgledamo u toku izvršavanja programa ili,
izborom "break" jezička, liste promenljivih koje izazivaju
prekid izvršenja programa kada definisane promenljive poprime zadate
vrednosti. Sledeća celina je terminal emulator koji se nalazi ispod
pomenutog "watch" prozora. Svaki ispis na serijski port, u toku
izvršavanja programa unutar simulatora, biće prikazan u ovom
prozoru.
|

|
|
Slika
14. Simulator |
Ako program traži unos vrednosti za neku varijablu (INPUT
naredba) tada je potrebno mišem kliknuti na prozor terminal emulatora (da
bi smo prebacili fokus na isti) te sa tastature računara otkucati
vrednost. Po pritisku na Enter tipku simulator nastavlja dalje izvršavanje
programa sa prethodno unetom vrednošću. četvrtu celinu
pretstavlja prozor sa "izvornim" programom koji se evaluira.
Desno od njega nalazi se manji prozor u kome imamo prikaz svih internih
registara mikrokontrolera. I poslednja šesta celina je statusna linija na
kojoj se ispisuje "tik counter", brojač izvršenih naredbi
(asemblerskih) i vreme trajanja-izvršenja programa, kao i ranije pomenuta
dubina steka. U bilo kom trenutku izvršenja programa možemo mišem
kliknuti na "tik counter" i resetovati ga!
Kao prvu celinu spomenuo sam navigacione tastere. U prvom redu su Run,
Pause i Stop tasteri iza kojih slede Step into code (izvršavanje samo
jedne naredbe), Step over code (takođe izvršavanje samo jedne
naredbe pri čemu se sada i potprogrami tretiraju kao
"jedna" naredba) te Run to (izvršenje do linije koju označimo
u prozoru sa izvornim programom). Ovim tasterima određujemo način
izvršenja programa unutar simulatora.
|
U nastavku, nalazi se još par veoma interesantnih tastera koji za razliku
od prethodnih ne određuju način izvršenja programa, već
nam pomažu u vizuelizaciji stanja programa odnosno resursa
mikrokontrolera pa čak i nekih "spoljašnjih" uređaja.
|

|
|
Slika
15. Simulacija hardvera |
Prvi po redu takav taser otvara prozor za simulaciju hardvera. To je
taster sa ikonom LCD-a. Na slici br. 15 vidimo izgled pomenutog prozora.
Vizuelizacija stanja portova (P0 do P3 u zavisnosti od upotrebljenog
mikrokontrolera) je urađena pomoću LED-ova "okačenih"
na pomenute portove. Ukoliko LED svetli dotični bit je setovan (pod
uslovom da je selektovana opcija CG - Common Ground). Ako kliknemo na neki
LED menjamo vrednost bita na portu.
Osim toga imamo na raspolaganju i jedan sedmo segmentni displej. Desnim
klikom na pomenuti displej otvara nam se novi - konfiguracioni prozor
(slika 16.) u kome definišemo koji segment displeja je vezan za koji bit
porta.
Na kraju tu je i sam LCD emulator na kome će se, slično
terminalskom emulatoru, ispisivati sve naše poruke iz programa koje su
upućene LCD-u. Na slici br.15 vidimo da na emuliranom LCD-u imamo i
ispis UDG karaktera. Takođe sa iste slike možete videti da se dugačka
naredba može preneti i u sledeći red stavljanjem "_"
(underline) karaktera na kraju prethodnog reda (kome prethodi bar jedan
“space” karakter).
|

|
|
Slika
16. Definisanje veza za sedmosegmentni displej |
Odmah do tastera za simulaciju hardvera imamo i taster za simulaciju
hardvera u "realnom svetu" - Real Hardware Simulation. Pritiskom
na ovaj taster omogućavamo testiranje programa u realnom spoljnom
okruženju bez da zaista programiramo mikrokontroler. Naš PC računar
će izvršavati napisani program i preko paralelnog porta prenositi
stanja emuliranog kontrolera spoljnom periferalu a takođe preko
paralelnog porta će se vršiti i učitavanje stanja iz
"spoljašnjeg sveta". Jasno Vam je da je za tako nešto potreban
specifičan dodatni hardver, no o svemu tome detaljnije pogledajte u
aplikaciji AN-10 na adresi http://www.mcselec.com/applicat.htm . Ovakav način
simulacije ima i svojih ograničenja: mogu se samo P1 i P3 portovi
emulirati te nije podržana emulacija interaptova (postoji još jedna
verzija dodatnog hardvera za "spoljašnju simulaciju" koja je
delo Poljskog časopisa Elektronika Prakticzna kod koje je moguć
rad sa sva četiri porta ali više o tome nekom drugom prilikom).
Dakle za sada je podržano samo čitanje i setovanje portova, što znači
da će se ovaj segment simulatora i dalje razvijati!
Prikaz strelice koja označava programsku liniju koja se izvršava,
uzima dosta procesorskog vremena pa ukoliko želite da ubrzate simulaciju
isključite ovu opciju. To nam omogućava sledeći taster u
nizu koji objašnjavamo. Za njim slede tasteri za: prikaz sadržaja
internog RAM-a, eksternog RAM-a te EEPROM-a u slučaju da koristimo
AT89S8252. Na kraju ove grupe tastera nalazi se i taster koji uključuje/isključuje
osvežavanje prikaza vrednosti promenljivih za vreme izvršavanja
programa.
Na kraju svih tastera imamo i jedan "regler" koji ima zadatak da
usporava rad simuliranog programa za slučaj da želite da u
kontinualnom režimu rada simulatora nadgledate promenljive.
Ispod opisane grupe tastera imamo tastere za generisanje interapta.
Pritiskom na neki od ovih tastera u toku simulacije - izvršavanja
programa, generiše se signal odgovarajućeg interapta te na taj način
možete proveriti ispravnost rada rutina za obradu interapta.
PROGRAMATOR(I)
Pa, pošto smo napisali i testirali program, na redu
je programiranje mikrokontrolera. U uvodu prikaza BASCOM-a sam spomenuo da
podržava dvanaest tipova programatora, a evo i liste svih dvanaest:
• MCS Flash Programmer
• MCS SPI Programmer
• BlowIT Programmer
• PG2051
• PG302
• JPK Systems X-programmer
• Peter Averill's TAFE Programmer
• SE512/SE514
• EPROM Simulator on LPT
• Atmel Programmer by DL2TM
• OM Combined Programmer
• External programmer
Više detalja o pojedinim programatorima možete naći na Internetu.
Neki od modela su komercijalni a za neke (MCS Flash Programmer, BlowIT
Programmer i dr.) možete naći šeme pa čak i nacrte štampanih
pločica.
Iz ličnog iskustva u radu mogu Vam preporučiti MCS SPI
Programmer sa kojim ćete uživati u svim blagodetima ISP
programatora. Bez vađenja mikrokontrolera iz ciljnog uređaja,
bez napuštanja BASCOM-ovog razvojnog okruženja, pritiskom na ikonu sa
ZIF-om automatski započinje programiranje te potom i verifikacija
programa. Naravno, za ovo je preduslov da koristite mikrokontroler sa ugrađenim
hardverskim SPI interfejsom a to su AT89S8252 ili AT89C53 mikrokontroleri.
Ovo je idealno rešenje za razvojne potrebe.
U slučaju da ciljni mikrokontroler nije neki od gore navedenih,
koristim Atmel-ov programator čiji detaljan opis možete naći u
dokumentu DOC0285.PDF na Atmel-ovom sajtu. Kako je pomenuti programator
prikazan u nekom od ranijih brojeva Mikro Elektronike, verujem da će
upotreba istog biti interesantna mnogim čitaocima. Za rad sa ovim
programatorom potrebno je konfigurisati BASCOM da koristi "spoljašnji"
korisnički softver - External Programmer. Originalni softver za rad
sa programatorom je dat u rudimentnom obliku kao "gomila" DOS
izvršnih programa za svaki tip mikrokontrolera, pa je najjednostavnije da
napravite batch fajl u kome se uz pomoć običnih DOS komandi može
realizovati sistem menija za izbor mikrokontrolera koji se želi
programirati. Sada taj batch fajl navedete kao ime programa za rad sa
hardverom programatora - pogledajte sliku br. 4.
Pomenuti Atmel-ov programator zahteva još par preduslova za ispravan rad.
Kao prvo, u BIOS-u Vašeg računara morate podesiti EPP (Enhanced
Paralell Port) mod za paralelni port zbog bidirekcionalnog načina
rada samog hardvera programatora. Kao drugo, ukoliko koristite Windows 95
(uz eventualni update LPT.VXD drajvera) nećete morati napuštati
BASCOM-ovo razvojno okruženje pri programiranju sa pomenutim
programatorom. Na žalost, svi oni koji koriste Windows 98 moraće da
restartuju računar u MSDOS modu radi programiranja, te potom da sačekaju
da se računar ponovo podigne u Windows ambijentu kako bi nastavili
rad sa BASCOM-om. Ova neprijatnost u radu posledica je činjenice da
Microsoft u verziji Windows-a 98 ne podržava rad EPP porta! Pravo rešenje
za pomenuti problem je izrada bidirekcione PC kartice na koji bi se kačio
samo programator, kao što je i opisano u Atmel-ovom dokumentu
DOC0285.PDF.
I na kraju priče o programatorima, jedno generalno upozorenje pri
radu sa programatorima koji se vezuju preko paralelnog porta. Ukoliko
imate samo jedan paralelni port u računaru, vodite računa da ne
ostavite priključen programator po završetku rada sa istim jer neki
programi, kao na primer MS Word, menjaju stanja - status na paralelnom
portu po svom startovanju te mogu izazvati neženjene posledice na
zaboravljenom mikrokontroleru u priključenom programatoru!
Najjeftinije rešenje ovog problema je nabavka stare (ispravne) Hercules
kartice i njene ugradnje u računar kao drugog paralelnog porta. U tom
slučaju Hercules port postaje LPT1 port na koji konektujete sve štampače
pod Windows-om a programatoru na raspolaganju ostaje slobodan paralelni
port sa ploče koji je sada LPT2 port.
IDEALNA
ALATKA?
Do sada smo se u okviru nekog projekta redovno bavili
i "programiranjem" vezanim za razno-razne periferale. Sada pomoću
BASCOM-a, koji ima veoma bogat instrukcijski set za ovu podršku, imamo više
vremena i usredsređeniji smo na samo rešavanje problema. To su
neosporne činjenice no kako ste u prethodnim redovima uglavnom čitali
"hvalospeve" o BASCOM-u red bi bio da spomenemo i po koju manu,
da ne bi ste još pomisli da je odgovor na podnaslov tačan.
Kao prvo moglo bi se zameriti što su sve promenljive u BASCOM-u globalne.
No to i nije neka velika mana naročito kada se radi o projektu gde
koristimo samo interne resurse kontrolera jer, dozvolićete mi da
karikiram situaciju, ako na raspolaganju imate 5 slobodnih bajtova unutar
mikrokontrolera onda je to 5 bajt promenjivih pa sad zovite ih globalnim
ili lokalnim sve jedno je.
Druga ozbiljnija primedba je ta što je dozvoljena upotreba samo prostih
aritmetičkih izraza - samo jedne kalkulacije po izrazu. Ako želite
da izračunate izraz tipa:
D=A+B+C
tada to u BASCOM-u treba da napišete u formi:
D=A+B
D=D+C
To je zato što BASCOM koristi prostiji aritmetički kalkulator bez
opterećivanja steka, pa je time i brže izvršavanje! No, kao
posledicu pomenutog možete imati upotrebe pomoćnih promenljivih u
slučaju rešavanja kompleksnijih izraza.
Sledeća ozbiljna zamerka je na IF naredbu. Iako podržava složenu
strukturu (ElseIf..Then) ozbiljna mana joj je što može da barata samo sa
prostim uslovom. Dakle samo jedan izraz. Ako želimo da napišemo:
If A=5 And B=6 Then
Procedura
EndIf
tada to u BASCOM-u treba da napišemo na sledeći način:
If A=5 Then
If B=6 Then
Procedura
EndIf
EndIf
Za slučaj da nam treba nešto poput:
If A=5 Or B=6 Then
Procedura
EndIf
u BASCOM-u to možemo uraditi na sledeći način:
If A=5 Then
Procedura
ElseIf B=6 Then
Procedura
EndIf
I kao poslednja primedba (po autorovom mišljenju) to je nedostatak
trigonometrijskih funkcija. BASCOM se neprestano dorađuje pa se tako
očekuje i "otklanjanje" napomenutih mana, prvenstveno IF
naredbe i dopune trigonometrijskim funkcijama, u skorijoj budućnosti.
Možda ćete kada budete i sami radili sa BASCOM-om otkriti po još
neki "nedostatak". No nemojte se ustručavati te sve
primedbe i sugestije slobodno pošaljite, putem elektronske pošte na
adresu markŽmcselec.com. Podrška je odlična i obično u roku od
24 časa dobijate odgovor. Sem toga, postoji i BASCOM-ova mail lista
na kojoj takođe možete postavljati pitanja i razmenjivati iskustva.
Za sve Vas koji će joj se tek sada priključiti, postoji i arhiva
mail liste na adresi http://www.grote.net/bascom/bascom-archive.html. U
poslednje vreme, na mail listi, se pričalo o TCP-IP protokolu i 8051
mikrokontrolerima, izradi interfejsa za priključenje IDE HDD-ova na
mikrokontrolere, izradi MP3 Player-a sa mikrokontrolerima kao i mnogim
drugim interesantnim pitanjima koja su postavljali i na njih odgovarali
BASCOM korisnici iz celog sveta!
ZA
KRAJ
MCS Electronics je firma koja osim BASCOM-8051 ima još
i BASCOM-LT te BASCOM-AVR produkte. BASCOM-LT je preteča BASCOM-8051
i u mnogo čemu je skromniji ali još uvek upotrebljiv produkt. Rađen
je za šesnaestobitnu platformu (Windows 3.11) nema podršku za floating
point aritmetiku te ima slabije podržane nizove. Do skora je BASCOM-8051
imao mogućnost da pri kompajliranju izaberete da li će se
generasti kod u skladu sa BASCOM-LT ili BASCOM-8051 bibliotekama. Od
verzije koja se nudi u pomenutom DEMO-u ova opcija više ne postoji i neće
je biti ni u narednim verzijama. BASCOM-8051 instrukcijski set se
"malo" proširio u odnosu na svog prethodnika...
Šta reći o BASCOM-AVR produktu. Sve rečeno - opisano vezano za
razvojno okruženje važi i za BASCOM-AVR. Naravno u pitanju su podrške
drugim programatorima no detaljnije možda u nekom budućem, posebnom
članku. Možda za kraj reći samo to da je to najmlađi
produkt. Zbog velikog interesovanja korisnika, izbačena je prvo
verzija kompajlera koja nije imala podršku aritmetici sa pokretnim
zarezom, pa je posle usledila nova verzija koja je i to pokrila te se sada
očekuje verzija u kojoj bi bio uključen i simulator.
Mislim da je dovoljno rečeno da bi ste se "zagrejali" za
opisani produkt. Pa ako je tako, drago mi je da sam u tome uspeo te očekujem
da već krećete da download-ujete DEMO verziju koja je, ne
zaboravite, celokupno razvojno oruženje za AT89C2051 mikrokontroler!
Nadam se da će te uskoro poslati i neku od Vaših interesantnih
ruko-umotvorina redakciji kako bi ga prezentovala široj javnosti, jer sa
2KB programske memorije se stvarno može dosta toga (a zahvaljujući
BASCOM-u i lako) napraviti!
P.S.
Od kada je inicijalno napisan tekst o BASCOM-u pa do pojave teksta u papirnom izdanju, prošlo je dosta vremena a kako je
već rečeno BASCOM se neprestano dorađuje - poboljšava! Zato je važno da napomenem par detalja vezano za nove distribucije
BASCOM-a.
Kao prvo, BASCOM se sada
isporučuje na dve, umesto kako je u tekstu napisano na tri diskete. Kao posledicu smanjenja distributivnog paketa imamo da se SAMPLES direktorijum ne dobija uz samu distribuciju
već je isti potrebno skinuti - download-ovati sa sledece adrese: www.mcselec.com/download_8051.htm.
Novost je i to da IF komanda sada podržava višestruke izraze za uslov (na primer IF A=5 AND B=6 ...), zatim u BASCOM-u postoji podrška i za graficki LCD, kao i mnoge druge interesantne stvari koje su detaljno navedene u
history.txt dokumentu koji se dobija uz BASCOM distribuciju.
Takode, BASCOM-AVR je dobio simulator! I za ovu distribuciju postoji
history.txt dokument... Dakle ukoliko želite poslednju - aktuelnu verziju DEMO programa BASCOM-8051 treba da je skinete sa gore pomenute
adrese!
Autor.
x
| Vreme
je za Vaš prvi licencirani program |
| BASCOM se može naručiti
i kod nas! Paket košta 69$ (140DM) kao i bilo gde u svetu. Program
je zaštićen licencom koja važi za samo jedan računar.
Distribuira se preko interneta ili na disketama. Za više
informacija obratite se na redakcijske telefone 011/684-919 i
011/684-391 ili preko formulara za kontakt na sajtu
mikroElektronike. |
|