|
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
|
|
|
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:
---
-w wolnym tłumaczeniu-jeżeli, przykład:
| Kod: | Const Xd = 1
#if Xd
Lcd ":)" |
---
-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 ":(" |
---
-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:
---
-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 |
---
-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:
---
-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 |
---
-zawiera w sobie dodatkowa nieskończoną pętle i czeka na jakieś "wydarzenie"
---
-konfiguruje się ta dyrektywa jakieś urządzenie (np:lcd) bądź pin, port procesora
---
-pętla nieskończona
---
-włącza bądź wylloncza ekran lcd (displey on/off)
---
-kończy program
---
-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" |
---
-polecenie wyświetlające na lcd dany tekst
---
-instrukcja dająca sygnał kompilatorowi że dalszy tekst to komentarz można ją zastąpić '
---
-ustawia bit w stan 0, przykład:
| Kod: | reset portd.4
co równie dobrze można zapisać jak:
portd.4=0 |
---
-wykonuje powrót do np: podprogramu
---
-ustawia bit w stan 1, przykład:
| Kod: | set portd.4
co równie dobrze można zapisać jak:
portd.4=1 |
---
-przesuwa bity w prawo bądź w lewo (shift left/right)
-przesuwa zawartość LCD w prawo lub w lewo (shiftlcd left/right)
---
-służy do generowania dźwięków, przykład:
| Kod: | Sound portd.4 , 100, 10
'sound pin , liczba impulksów, czas |
---
-przerwanie programu na określony czas (w sekundach)
| Kod: | wait 2 'czekaj dwie sekundy |
---
-przerwanie programu na określony czas (w milisekundach)
| Kod: | waitms 2000 'czekaj dwie sekundy |
---
-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
 |
|
|
|
 |
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
|
|
|
|
 |
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 |
|
|
|
 |
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! |
|
|
|
|
|
 |
Ikar 


Posty: 57 Pomógł: 3 razy Otrzymał 78 piw(a) Skąd: się biorą dzieci ?
I miejsce w konkursie na najlepszy artykuł.
|
|
|
|
 |
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 |
|
|
|
|
|
 |
Ikar 


Posty: 57 Pomógł: 3 razy Otrzymał 78 piw(a) Skąd: się biorą dzieci ?
I miejsce w konkursie na najlepszy artykuł.
|
|
|
|
 |
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 : / |
|
|
|
|
|
 |
Ikar 


Posty: 57 Pomógł: 3 razy Otrzymał 78 piw(a) Skąd: się biorą dzieci ?
I miejsce w konkursie na najlepszy artykuł.
|
|
|
|
 |
marek91 


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

Posty: 38 Pomógł: 1 raz Skąd: mam internet ??
|
|
|
|
 |
misiek1994 


Posty: 213 Pomógł: 4 razy Otrzymał 19 piw(a) Skąd: z Sędziszowa
Programuję w: asm, C
|
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... |
|
|
|
|
|
 |
Ikar 


Posty: 57 Pomógł: 3 razy Otrzymał 78 piw(a) Skąd: się biorą dzieci ?
I miejsce w konkursie na najlepszy artykuł.
|
|
|
|
 |
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. |
|
|
|
|
|
 |
waldek96 

Posty: 29 Skąd: Spod warszawy
|
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? |
|
|
|
|
|
 |
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. |
|
|
|
|
|
 |
waldek96 

Posty: 29 Skąd: Spod warszawy
|
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 |
|
|
|
 |
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 |
|
|
|
|
|
 |
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ć?
 |
|
|
|
|
|
 |
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 |
|
|
|
|
|
 |
mateuszrjzr 


Posty: 51 Skąd: Bochni
|
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. |
|
|
|
 |
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 |
|
|
|
|
|
 |
Luko 


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


Posty: 51 Skąd: Bochni
|
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. |
|
|
|
 |
|
|