sobota, 8 października 2011

Wstęp kursu programowania – BASCOM AVR


   Po długiej przerwie wakacyjnej postanowiłem kontynuować pisanie mojej strony. Podczas tego okresu dużo czasu spędziłem na programowaniu w jednym z najprostszych obecnie języków jakim jest BASCOM. Jest to język obsługujący mikrokontrolery z rodziny AVR. Do tej pory pokazywałem projekty ,które mogły zostać z powodzeniem zrealizowane na zwykłych , pojedynczych tranzystorach lub gotowych układach scalonych nie zawierających pamięci. Umiejętność programowania otwierają przed nami jednak  zupełnie nowe możliwości . Nawet najprostszy język programowania jakim jest BASCOM (właściwie język programowania ,który mam na myśli to Basic a BASCOM-AVR to program kompilujący go) daje nam ogromną swobodę w tworzeniu rozmaitych projektów – od zegarków po wielozadaniowe platformy mobilne z manipulatorami. Tak więc jak powiedział Juliusz Cezar „Kości zostały rzucone”.
   Wbrew powszechnemu przekonaniu podstawy programowania można opanować już po jednym dniu nauki. Istnieje wiele rodzajów (tzw. rodzin) mikrokontrolerów. Ja zajmę się najbardziej popularną z nich a więc mikroprocesorami z rodziny AVR (inne to np. PIC czy ’51) gdyż są one kompatybilne z językiem BASCOM (warto zaznaczyć ,że istnieje wersja BASOCOM' a przeznaczona dla kontrolerów z rodziny '51 ale w tym kursie nie będę się tą grupą procesorów zajmował).  Kolejną decyzję jaką należy podjąć przed przystąpieniem do nauki jest wybór w jaki sposób mikroprocesor będzie komunikował się z komputerem. Może być to port COM lub USB. Port COM był w przeszłości używany do podłączania drukarek do komputera. Dziś mimo ,że wciąż ważny dla elektronika powoli odchodzi w zapomnienie.  Alternatywą dla takiego rozwiązania może być z kolei programator USB. Jednak BASCOM-AVR (kompilator języka Basic) nie obsługuje programatorów USB , dlatego też w tym wypadku należy użyć dodatkowego oprogramowania jakim jest AVR Studio.  Ja osobiście korzystam z programatora stk500 ,który wykorzystuje transmisje USB i właśnie z tego względu dodatkowo muszę używać programu Avr studio.  Warto również wspomnieć ,że do zaprogramowania mikrokontrolera programator nie jest elementem niezbędnym, bowiem wystarczy użyć 4 kabelków z rezystorami podłączonymi do odpowiednich pinów portu COM. Jednak korzystając z takiego rozwiązania należy liczyć się z możliwością spalenia portu COM. Ostatnim elementem jest oprogramowanie na komputer PC jakimi są wspomniane wcześniej programy BASCOM-AVR i AVR Studio.  Ten drugi jest potrzebny tylko jeśli zdecydowałeś się na wariant z USB.   Oba te programy są to  tzw.  kompilatory to znaczy zajmują się zamienianiem dyrektyw języka programowania na kod zero-jedynkowych  ,który następnie zostaje przesłany do mikrokontrolera.  BASCOM-AVR  jest kompilatorem języka BASCOM a więc  zamienia dyrektywy języka BASCOM ,natomiast AVR Studio jest kompilatorem języka C oraz assemblera. Oba te języki (szczególnie ten drugi) są znacznie trudniejsze w opanowaniu niż BASCOM. Zapytacie więc po co nam to AVR studio? A więc AVR Studio w przeciwieństwie do BASCOM –AVR pozwala na załadowanie kodu zero jedynkowego (wygenerowanego wcześniej w BASCOM-AVR na podstawie dyrektyw napisanych przez programistę czyli ciebie) do mikrokontrolera przez programator USB.  
   Każdy programator mikroprocesorów AVR (zarówno USB jak i COM) zakończony jest tzw. złączem KANDA . W instrukcji programatora powinien znajdować się rysunek z odpowiednio podpisanymi  pinami. Piny te należy podłączyć do tak samo nazywających się
nóżek mikroprocesora co obrazuje poniżej zamieszczony rysunek na przykładnie mikroprocesora o nazwie Attiny2313.


   Dlaczego akurat Attiny2313? Ponieważ darmowa wersja programu BASCOM-AVR pozwala na napisanie programu zajmującego maksymalnie 2kb pamięci FLASH (edit: obecnie jest to już 4kb!) i taką pojemność posiada właśnie Attiny2313. Gdybyśmy użyli np. Atmegi88 ,której pojemność wynosi 8kb pamięci FLASH zapłacilibyśmy ponad 10 zł więcej. Co więcej znaczna część podwyżki ceny wynika właśnie z przyrostu pamięci FLASH ,której i tak byśmy nie mogli użyć i 6kb pamięci zostało by nie wykorzystane. Do testów polecam wykorzystać płytkę stykową  ,która zarówno umożliwi łatwe i nie zwykle uniwersalne połączenie programatora jak i sprawdzenie działania swojego prototypu przed umieszczeniem w gotowym urządzeniu. Na koniec chciałbym wspomnieć o tym ,że język BASCOM ,będący zresztą dialektem języka Basic jest rzeczywiście dużo prostszy niż język C czy assembler  ,jednak okupione jest to tym ,iż programy przez niego tworzone zajmują stosunkowo więcej miejsca w pamięci FLASH mikroprocesora niż kody stworzone w trudniejszych językach.
  Temat ten potraktowałem jako wstęp.  W kolejnych , poświęconych programowaniu będę przedstawiał krok po kroku tajniki języka BASCOM.

1 komentarz: