Kurs BASCOM - lekcja2 - Pierwsze kroki
Autor Wiadomość
Ikar 




Posty: 57
Pomógł: 3 razy
Otrzymał 78 piw(a)
Skąd: się biorą dzieci ?

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 16 Lip 08 06:48   Kurs BASCOM - lekcja2 - Pierwsze kroki


Kurs BASCOM - lekcja1-wstęp
Kurs BASCOM - lekcja2 - pierwsze kroki
Kurs BASCOM - lekcja3 - zaczynamy programować


Witam!
W tej części skonfigurujemy nasz kompilator, poznamy jego dodatkowe narzędzia oraz dyrektywy.
Będę się starał jak najbardziej "łopatologicznie" wszystko tłumaczyć.


Zaczynamy.
Konfiguracja:
Aby wejść w okno opcji należy kliknąć ikonę



na pasku narzędzi.
W tym oknie klikamy zakładkę „Programer” (1)



W linii Programer(2) wybieramy programator jaki będziemy używać. W zależności od tego co wybierzemy pojawia nam sie poniżej różne zakładki (ja wymienię 3 najczęstsze).
Na powyższym obrazku widać „Parallel”(3)
W linii „LPT-address” (4)wybieramy adres naszego portu lpt, a w linii „Port dalay”(5) wpisujemy liczbę odpowiadającą za opóźnienie portu co jest konieczne w przypadku szybkich procesorów. Wartość tą dobiera się doświadczalnie.



Tutaj widać zakładkę „Serial”(6).W linii „COM-port”(7) wybieramy nr. Portu do jakiego jest podłączony nasz programator , a w linii „STK500”(8) wpisujemy ścieżkę do programu obsługójącego ten programator.



Zakładka „Other”(9). W linii „Program”(10) wpisuje się ścieżkę do programu obsługójącego ten twój programator W linii „Parameter”(11) wpisujemy dodatkowe parametry dla programu, a zaznaczając „Use HEX file”(12) dajemy sygnał bascomowi, że ma do programu obsługującego programator wysłać pliki HEX.

Narzędzia BASCOM-a:

-Lcd desinger(Ctrl+L):



Część bascoma w której można zdefiniować 8 dowolnych, niestandardowych znaków, mogą to być np: polskie znaki takie jak: ąćęłńóśźż; lub jak widać na obrazku-cokolwiek :) Pole do projektowania znaczków ma 40 kostek tak jak jedno pole w wyświetlaczu alfanumerycznym Aby dodać do programu swój symbol należy kliknąć przycisk ok.

-LIB Menager(Ctrl+I):



Część bascoma do zarządzania i tworzenia nowych bibliotek. Narzędzie dla dużo bardziej zawansowanych (asembler).

-Terminal emulator(Ctrl+T):



Służy do otwierania programów korzystających z portu rs232(com).

-Graphic converter:



Przekompilowuje pliki .bmp do plików .bgf tym samym zmieniając je na czarno-białe. Maksymalna rozdzielczość obrazka to 240*240. Obraz można potem wyświetlić na lcd graficznym.

Dyrektywy procesora:
---
Kod:
#if

-w wolnym tłumaczeniu-jeżeli, przykład:
Kod:
Const Xd = 1
#if Xd
Lcd ":)"

---
Kod:
#else

-bądź, jeżeli warunki podane w #if nie zostaną spełnione zostanie wykonana instrukcja z dyrektywy #else, przykład:
Kod:
Const Xd = 1
#if Xd
Lcd ":)"
#else
Lcd ":("

---
Kod:
#endif

-dyrektywa kończąca dyrektywe warunkową którą jest #if to działa jak zamkniecie polecenia np. html-u (tam kończy sie dane zadanie ta sama komendą którą sie zaczynał tylko ze sleszem- to tak do porównania), przykład:
Kod:
Const Xd = 1
#if Xd
Lcd ":)"
#else
Lcd ":("
#endif


Dyrektywy kompilatora:
Z tych dyrektyw będzią nas interesowac tylko dwie:
---
Kod:
$regfile

-służy do określenia procesora na jakim bedzie działać program, przykład:
Kod:
$regfile = "2313def.dat"
'program jest pisany na procesor attinny2313

---
Kod:
$crystal

-służy do określania taktowania z jakim będzie pracować procesor, przykład:
Kod:
$crystal = 4000000
'procesor będzie pracował z kwarcem bądź na wewnętrznym oscylatorze 4Mhz


Elemęty języka Bascom Basic:
---
Kod:
ALIAS

-służy do zmiany nazwy zmiennej, jeżeli wiemy że do danego pinu będzie podpięty czujnik możemy zmienic nazwe aly nam się łatwiej pisało program oraz ab był bardziej przejrzysty, przykład
Kod:
sensor1 alias portb.0

---
Kod:
BITWAIT

-zawiera w sobie dodatkowa nieskończoną pętle i czeka na jakieś "wydarzenie"
---
Kod:
CONFIG

-konfiguruje się ta dyrektywa jakieś urządzenie (np:lcd) bądź pin, port procesora
---
Kod:
DO...LOOP

-pętla nieskończona
---
Kod:
DISPLAY

-włącza bądź wylloncza ekran lcd (displey on/off)
---
Kod:
END

-kończy program
---
Kod:
GOSUB

-wykonuje skok do podprogramu, przykład:
Kod:
if pind.0=0 then
gosub jedz

end if

jedz:
portb.4=1
portb.3=0
return

---
Kod:
IF...THEN...ELSE...END IF

- blok decyzyjny, przykład:
Kod:
if pind.0=0 then
portb.6=0
else
portb.6=1
end if

'jeżeli na pinie portu d pojawi się zaro wtedy wprowadź noge 6 portu b w stan wysoki
'bądź jeżeli na pinie portu d pojawi się jeden wtedy wprowadź noge 6 portu b w stan spoczynku
'koniec "ciagu warunków"

---
Kod:
LCD

-polecenie wyświetlające na lcd dany tekst
---
Kod:
REM

-instrukcja dająca sygnał kompilatorowi że dalszy tekst to komentarz można ją zastąpić '
---
Kod:
RESET

-ustawia bit w stan 0, przykład:
Kod:
reset portd.4
co równie dobrze można zapisać jak:
portd.4=0

---
Kod:
RETURN

-wykonuje powrót do np: podprogramu
---
Kod:
SET

-ustawia bit w stan 1, przykład:
Kod:
set portd.4
co równie dobrze można zapisać jak:
portd.4=1

---
Kod:
SHIFT

-przesuwa bity w prawo bądź w lewo (shift left/right)
Kod:
SHIFTLCD

-przesuwa zawartość LCD w prawo lub w lewo (shiftlcd left/right)
---
Kod:
SOUND

-służy do generowania dźwięków, przykład:
Kod:
Sound portd.4 , 100, 10
'sound pin , liczba impulksów, czas

---
Kod:
WAIT

-przerwanie programu na określony czas (w sekundach)
Kod:
wait 2 'czekaj dwie sekundy

---
Kod:
WAITMS

-przerwanie programu na określony czas (w milisekundach)
Kod:
waitms 2000 'czekaj dwie sekundy

---
Kod:
WAITUS

-przerwanie programu na określony czas (w mikrosekundach)
Kod:
waitus 2000000 'czekaj dwie sekundy

Z tym, że żadne polecenie z serii wait nie może posiadać więcej jednostek niż 65535, więc ostatni przykład jest błędny-podałem go tak aby początkujący nie musieli szukać ile to jest mikrosekunda.

Wymieniłem chyba te najczęściej używane dyrektywy po reszte odsyłam was do helpa bascom którego można pobrać z tej stronki.

W następnej części nauczymy się praktycznego zastosowania podanych dyrektyw oraz konfigurować porty.

Paweł "Ikar" Stanmkiewicz

Dla początkujących polecamy zestaw z oferty firmy and-tech.pl
http://www.zestawyuruchomieniowe.pl/


Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 21 piw(a):
dziadek46, Treker, Minner, Decado, abxyz, Master, marek91, Daniel93, kaczor23, Nawyk, wojto15-05, fifi, Supertrash, 1999599612, DarkSavant, Linux, Dumbledore, MaRo88PL, Nogad21, fusior, MAD_1996
Minner



Posty: 8
Skąd: Lublin
Wysłany: 17 Lip 08 11:27   

Oby tak dalej. :) Właśnie przymierzałem się do nauki BASCOMA bo w Cpp niektóre rzeczy związane z ubsługą uC są nieco bardziej skomplikowane, a tak zawsze jakaś alternatywa ;)

Postaw piwo autorowi tego posta
 
 
abxyz 
Expert programowanie



Posty: 206
Pomógł: 19 razy
Otrzymał 51 piw(a)
Skąd: zza winkla
Programuję w:
laptoku

Wysłany: 17 Lip 08 08:27   

Pozwolę sobie wtrącić małą uwagę: Czy nie lepiej w przypadku instrukcji języka: "if", "end if" itd. , zamiast słówka "dyrektywa" użyć "instrukcja", żeby się nie myliło z dyrektywami kompilatora, jak np:

CONST test = 1
#IF TEST
Print "This will be compiled"
#ELSE
Print "And this not"
#ENDIF


http://www.xyz.isgreat.org
Postaw piwo autorowi tego posta
 
 
dziadek46 



Posty: 68
Skąd: Pulawy
Programuję w:
BASCOM

Wysłany: 18 Lip 08 02:58   

Ikar, robisz porzyteczną i sensowną robotę, duże dzięki! Tak więc, uczymy się Bascoma mimo wieku!

Postaw piwo autorowi tego posta
 
 
 
Ikar 




Posty: 57
Pomógł: 3 razy
Otrzymał 78 piw(a)
Skąd: się biorą dzieci ?

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 18 Lip 08 07:37   

abxyz chodzi ci o te "dyrektywy procesora"?? Ja pominąłem te "#" aby uniknąć zbędnych pytań ze strony początkujących, przez co zrobiły się z tego elementy języka- teraz tak myśle że chyba jednak zmienię to na tak jak powinno być.
dziadek46Dzięki za uznanie. :) Na naukę nigdy za późno. :) :)
PS: uwagi zawsze mile widziane a szczególnie ekspertów takich jak abxyz


Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

Ostatnio zmieniony przez Ikar 18 Lip 08 10:45, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Minner



Posty: 8
Skąd: Lublin
Wysłany: 19 Lip 08 11:43   

czyli te podprogramy mogą byc definiowane po odwołaniu się do nich?
PS. popraw GOSUB odwolujesz się do "jedz" a definiujesz "jedź"

Komentarz dodany przez: treker:
Poprawiłem uwagę w P.S ;)

Postaw piwo autorowi tego posta
 
 
Ikar 




Posty: 57
Pomógł: 3 razy
Otrzymał 78 piw(a)
Skąd: się biorą dzieci ?

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 19 Lip 08 04:27   

Minner napisał/a:
czyli te podprogramy mogą byc definiowane po odwołaniu się do nich?


Jeżeli dobrze Cię rozumiem to tak ;)
pozdro


Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

Ostatnio zmieniony przez Ikar 19 Lip 08 04:28, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
mictronic 



Posty: 84
Pomógł: 5 razy
Otrzymał 1 piw(a)
Skąd: Bydgoszcz
Programuję w:
BASCOM

Wysłany: 19 Lip 08 11:30   

Pierwsza lekcja a nie ma wogle mowy o zmiennych-rodzajach i jak je deklarować,chyba od złej strony kolega zaczął pisać kurs : /

Postaw piwo autorowi tego posta
 
 
 
Ikar 




Posty: 57
Pomógł: 3 razy
Otrzymał 78 piw(a)
Skąd: się biorą dzieci ?

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 20 Lip 08 01:17   

Wszystko po kolei. Ja mam pewną "wizje" tego kursu. I czy zrobię to dobrze to zobaczymy.
pozdrawiam


Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

Postaw piwo autorowi tego posta
 
 
marek91 




Posty: 91
Pomógł: 8 razy
Otrzymał 12 piw(a)
Skąd: Mikołów
Programuję w:
domu

Wysłany: 20 Lip 08 09:58   

Podoba mi sie ten kurs :-D ale moim skromnym zdaniem najpierw powinna być konfiguracja portów a potem poszczegulne komendy, ale ok ;-)


www.real-money.pl
Mimo że mój robot działa na 2 programowalnych prockach, trafił do kategorii "BEAM" FOOCH :P ;)
Postaw piwo autorowi tego posta
 
 
 
_cyna_PL 



Posty: 38
Pomógł: 1 raz
Skąd: mam internet ??
Wysłany: 05 Sie 08 07:11   

Mi tam się wszystko podoba ;p ale zawsze może być lepiej :-P ;p

Dla początkujących nie wiedzących co jest co możne się trochę mylić komenda z opisem :-? ;p nie ma żadnego rozdzielenie :cry: ;/


np :

Kod:
xxxxxxxxxxxx

- xxxxxxxxxxxxx

----------------------------------------------------------------------------------------------------

Kod:
xxxxxxxxxxxx

- xxxxxxxxxxxxx

itd :-) .

ps: to oczywiście moja sugestia :-> ;p

Postaw piwo autorowi tego posta
 
 
misiek1994 




Posty: 213
Pomógł: 4 razy
Otrzymał 19 piw(a)
Skąd: z Sędziszowa
Programuję w:
asm, C

Ostrzeżeń:
 1/3/4
Wysłany: 05 Sie 08 07:22   

"Kod:
IF...THEN...ELSE...END IF

- blok decyzyjny, przykład:
Kod:
if pind.0=0 then
portb.6=0
elseif pind.0=1 then
portb.6=1
end if

'jeżeli na pinie portu d pojawi się zaro wtedy wprowadź noge 6 portu b w stan wysoki
'bądź jeżeli na pinie portu d pojawi się jeden wtedy wprowadź noge 6 portu b w stan spoczynku
'koniec "ciagu warunków" "

Piszesz czasami głupoty. else, a elseif to nie to samo!!! Jeżeli damy elseif to sprawdza kolejną zmienną, jeżeli poprzednie if nie zostało wykonane. Jeżeli damy else, to ustawia automatycznie zmienną w wypadku, gdy porprzednie else nie zostało spełnione. poza tym zapomniałeś dołożyć taką instrukcje jak case. jest ona bardzo wygodna, ponieważ można urzywać jej na zasadzie "kiedy nastąpi..." lub "w przypadku gdy". Wtedy cały kod nie jest sprawdzany od początku jak w przypadku if...

Postaw piwo autorowi tego posta
 
 
 
Ikar 




Posty: 57
Pomógł: 3 razy
Otrzymał 78 piw(a)
Skąd: się biorą dzieci ?

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 10 Sie 08 04:26   

No nie jest to to samo lecz działania programu to nie zmieni. A to chyba tak z przyzwyczajenia napisałem. Zaraz zmienię. Jak jeszcze coś znajdziecie to dajcie znać.
PS: Tak samo nazywanie tego kursu "ms bascic college" (taka była pierwotna nazwa) nie jest poprawne ponieważ to co opisuje nie jest to czysty bascic jest to basic z elemętami bascomowymi .
pozdro


Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

Ostatnio zmieniony przez Ikar 10 Sie 08 04:39, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
kaczor23 



Posty: 32
Skąd: Gliwice ZSŁ
Programuję w:
Bascom

Wysłany: 13 Paź 08 07:42   

Opisy fajne, szkoda ze nie zrobiłes, tak że najpierw opis a potem kod tego opisu, bo sie strasznie myli.

Postaw piwo autorowi tego posta
 
 
waldek96 



Posty: 29
Skąd: Spod warszawy
Ostrzeżeń:
 1/3/4
Wysłany: 26 Cze 09 11:08   Re: Kurs BASCOM - lekcja2 - Pierwsze kroki

Ikar napisał/a:

Zakładka „Other”(9). W linii „Program”(10) wpisuje się ścieżkę do programu obsługójącego ten twój programator


Ale ten program to steowniki do programatora czy może ścieżka do bascoma?

Postaw piwo autorowi tego posta
 
 
mskojon 




Posty: 350
Pomógł: 25 razy
Otrzymał 37 piw(a)
Skąd: Legionowo
Programuję w:
Bascom

Wysłany: 26 Cze 09 11:18   

To ścieżka do innego programu, który obsługuje dany programator, jeśli Twój jest na tej liście to o to się nie martw.

Postaw piwo autorowi tego posta
 
 
waldek96 



Posty: 29
Skąd: Spod warszawy
Ostrzeżeń:
 1/3/4
Wysłany: 26 Cze 09 11:20   

Na jakiej liście? czyli w tej ramce mam nic niepisać?

[ Dodano: 26 Cze 09 01:33 ]
A w tej 2 zakładce co trzeba napisać (parametr) Możecie podać przykład?

Ostatnio zmieniony przez waldek96 26 Cze 09 11:25, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
raval 



Posty: 1
Skąd: Warszawa
Programuję w:
Bascom

Wysłany: 10 Paź 09 04:58   

Jestem nowy i chciałbym się przywitać. Do kursu mam tylko jedno pytanie - jak użyć znaku zaprojektowanego w LCD designer :?:

Postaw piwo autorowi tego posta
 
 
Bisu 



Posty: 1
Skąd: Knurów
Wysłany: 24 Paź 09 03:19   

Witam. Jak skonfigurować programator na rs232 w bascom AVR? co ustawić?

Postaw piwo autorowi tego posta
 
 
przemsi 



Posty: 1
Skąd: Gdynia
Wysłany: 20 Maj 10 08:10   

Witam po raz pierwszy , zaczynam właśnie zabawę
Czytam i jestem pod wrażeniem, znam kilka innych języków i na razie wszytko łapie :)

Postaw piwo autorowi tego posta
 
 
mateuszrjzr 




Posty: 51
Skąd: Bochni
Ostrzeżeń:
 2/3/4
Wysłany: 18 Lip 10 04:06   

co mam zrobić gdy pisze device reset


mój status nie pokazuje tego jaki jestem zielony,a powinien.
Postaw piwo autorowi tego posta
 
 
BoBBy 




Posty: 910
Pomógł: 38 razy
Otrzymał 63 piw(a)
Skąd: Katowice
Programuję w:
Basc/arduC

Wysłany: 18 Lip 10 11:26   

Gdzie jest napisane? Luko, przynieś fusy ;)

Postaw piwo autorowi tego posta
 
 
Luko 




Posty: 256
Pomógł: 16 razy
Otrzymał 12 piw(a)
Skąd: Sosnowiec
Programuję w:
Bascom

Wysłany: 18 Lip 10 11:53   

Już się razy wypowiadałem, teraz pijam mrożoną butelkowana herbatę z lidla :D fusów nie ma :D

Postaw piwo autorowi tego posta
 
 
mateuszrjzr 




Posty: 51
Skąd: Bochni
Ostrzeżeń:
 2/3/4
Wysłany: 19 Lip 10 01:16   

kiedy robię ctrl+t pojawia się komunikat taki co to ma znak drogi podporządkowanej z wykrzyknikiem a obok pisze właśnie "device reset" i wyświetla się na środku ekranu.


mój status nie pokazuje tego jaki jestem zielony,a powinien.
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Tagi tematu: bascom, kroki, kurs, lekcja2, pierwsze


Powered by phpBB modified by Przemo © 2003 phpBB Group
Linki: instalki nero