Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy RegulaminRegulamin  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj






Przyszłość jest w naszych rękach...
...bo przyszłość to robotyka.





Poprzedni temat «» Następny temat
Kurs BASCOM - lekcja2 - Pierwsze kroki
Autor Wiadomość
Ikar 



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

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 16 Lip 08 05: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
_________________
Gość jeżeli pomogłem kliknij pomógł lub postaw browarka ;)
Kontakt gg: 9044954

  
Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 9 piw(a):
dziadek46, treker, Minner, Decado, abxyz, Master, marek91, daniel93, kaczor23
Minner


Posty: 9
Skąd: Lublin
Wysłany: 17 Lip 08 10: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


Pomógł: 16 razy
Posty: 158
Otrzymał 26 piw(a)
Skąd: zza winkla
Wysłany: 17 Lip 08 07: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
_________________
Nie powie ci nawet wiedźma Pleple, czego się dowiesz wprost z Google_
Postaw piwo autorowi tego posta
 
 
dziadek46 


Posty: 8
Skąd: Pulawy
Wysłany: 18 Lip 08 01: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 



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

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 18 Lip 08 06: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 09:45, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Minner


Posty: 9
Skąd: Lublin
Wysłany: 19 Lip 08 10: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 



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

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 19 Lip 08 03: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 03:28, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
mictronic 


Pomógł: 4 razy
Posty: 68
Otrzymał 1 piw(a)
Skąd: Bydgoszcz
Wysłany: 19 Lip 08 10: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 



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

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 20 Lip 08 12: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 



Pomógł: 7 razy
Posty: 92
Otrzymał 6 piw(a)
Skąd: Mikołów
Wysłany: 20 Lip 08 08:58   

Podoba mi sie ten kurs :-D ale moim skromnym zdaniem najpierw powinna być konfiguracja portów a potem poszczegulne komendy, ale ok ;-)
_________________
Gość klikając przycisk "piwo" stawiasz browara biednemu dziecku z afryki
Postaw piwo autorowi tego posta
 
 
 
_cyna_PL 



Pomógł: 1 raz
Posty: 47
Otrzymał 1 piw(a)
Skąd: Z nikąd
Wysłany: 05 Sie 08 06: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 



Pomógł: 2 razy
Posty: 170
Otrzymał 12 piw(a)
Skąd: z Sędziszowa
Ostrzeżeń:
 1/3/4
Wysłany: 05 Sie 08 06: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 



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

I miejsce w konkursie na najlepszy artykuł.

Wysłany: 10 Sie 08 03: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 03:39, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
kaczor23 


Posty: 27
Skąd: Gliwice ZSŁ
Wysłany: 13 Paź 08 06: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
 
 
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group - manga
kredyt przez internet

Love and Light Dominik Peh kosmetyki nero BearShare taniec nowoczesny Warszawa taniec z gwiazdami Porównywarka cen elektroniki