Popularny post Ikar Napisano Lipiec 16, 2008 Popularny post Udostępnij Napisano Lipiec 16, 2008 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: --- #if -w wolnym tłumaczeniu-jeżeli, przykład: Const Xd = 1 #if Xd Lcd ":)" --- #else -bądź, jeżeli warunki podane w #if nie zostaną spełnione zostanie wykonana instrukcja z dyrektywy #else, przykład: Const Xd = 1 #if Xd Lcd ":)" #else Lcd ":(" --- #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: Const Xd = 1 #if Xd Lcd ":)" #else Lcd ":(" #endif Dyrektywy kompilatora: Z tych dyrektyw będzią nas interesowac tylko dwie: --- $regfile -służy do określenia procesora na jakim bedzie działać program, przykład: $regfile = "2313def.dat" 'program jest pisany na procesor attinny2313 --- $crystal -służy do określania taktowania z jakim będzie pracować procesor, przykład: $crystal = 4000000 'procesor będzie pracował z kwarcem bądź na wewnętrznym oscylatorze 4Mhz Elemęty języka Bascom Basic: --- 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 sensor1 alias portb.0 --- BITWAIT -zawiera w sobie dodatkowa nieskończoną pętle i czeka na jakieś "wydarzenie" --- CONFIG -konfiguruje się ta dyrektywa jakieś urządzenie (np:lcd) bądź pin, port procesora --- DO...LOOP -pętla nieskończona --- DISPLAY -włącza bądź wylloncza ekran lcd (displey on/off) --- END -kończy program --- GOSUB -wykonuje skok do podprogramu, przykład: if pind.0=0 then gosub jedz end if jedz: portb.4=1 portb.3=0 return --- IF...THEN...ELSE...END IF - blok decyzyjny, przykład: 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" --- LCD -polecenie wyświetlające na lcd dany tekst --- REM -instrukcja dająca sygnał kompilatorowi że dalszy tekst to komentarz można ją zastąpić ' --- RESET -ustawia bit w stan 0, przykład: reset portd.4 co równie dobrze można zapisać jak: portd.4=0 --- RETURN -wykonuje powrót do np: podprogramu --- SET -ustawia bit w stan 1, przykład: set portd.4 co równie dobrze można zapisać jak: portd.4=1 --- SHIFT -przesuwa bity w prawo bądź w lewo (shift left/right) SHIFTLCD -przesuwa zawartość LCD w prawo lub w lewo (shiftlcd left/right) --- SOUND -służy do generowania dźwięków, przykład: Sound portd.4 , 100, 10 'sound pin , liczba impulksów, czas --- WAIT -przerwanie programu na określony czas (w sekundach) wait 2 'czekaj dwie sekundy --- WAITMS -przerwanie programu na określony czas (w milisekundach) waitms 2000 'czekaj dwie sekundy --- WAITUS -przerwanie programu na określony czas (w mikrosekundach) 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/ 26
Minner Lipiec 17, 2008 Udostępnij Lipiec 17, 2008 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
abxyz Lipiec 17, 2008 Udostępnij Lipiec 17, 2008 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
dziadek46 Lipiec 18, 2008 Udostępnij Lipiec 18, 2008 Ikar, robisz porzyteczną i sensowną robotę, duże dzięki! Tak więc, uczymy się Bascoma mimo wieku!
Ikar Lipiec 18, 2008 Autor tematu Udostępnij Lipiec 18, 2008 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 2
Minner Lipiec 19, 2008 Udostępnij Lipiec 19, 2008 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 Lipiec 19, 2008 Autor tematu Udostępnij Lipiec 19, 2008 czyli te podprogramy mogą byc definiowane po odwołaniu się do nich? Jeżeli dobrze Cię rozumiem to tak pozdro
mictronic Lipiec 19, 2008 Udostępnij Lipiec 19, 2008 Pierwsza lekcja a nie ma wogle mowy o zmiennych-rodzajach i jak je deklarować,chyba od złej strony kolega zaczął pisać kurs : /
Ikar Lipiec 19, 2008 Autor tematu Udostępnij Lipiec 19, 2008 Wszystko po kolei. Ja mam pewną "wizje" tego kursu. I czy zrobię to dobrze to zobaczymy. pozdrawiam
marek91 Lipiec 20, 2008 Udostępnij Lipiec 20, 2008 Podoba mi sie ten kurs ale moim skromnym zdaniem najpierw powinna być konfiguracja portów a potem poszczegulne komendy, ale ok
_cyna_PL Sierpień 5, 2008 Udostępnij Sierpień 5, 2008 Mi tam się wszystko podoba ale zawsze może być lepiej Dla początkujących nie wiedzących co jest co możne się trochę mylić komenda z opisem nie ma żadnego rozdzielenie ;/ np : xxxxxxxxxxxx - xxxxxxxxxxxxx ---------------------------------------------------------------------------------------------------- xxxxxxxxxxxx - xxxxxxxxxxxxx itd . ps: to oczywiście moja sugestia :->
misiek1994 Sierpień 5, 2008 Udostępnij Sierpień 5, 2008 "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 Sierpień 10, 2008 Autor tematu Udostępnij Sierpień 10, 2008 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
kaczor23 Październik 13, 2008 Udostępnij Październik 13, 2008 Opisy fajne, szkoda ze nie zrobiłes, tak że najpierw opis a potem kod tego opisu, bo sie strasznie myli.
waldek96 Czerwiec 26, 2009 Udostępnij Czerwiec 26, 2009 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?
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »