25 (351)

25 (351)




Top www

do

{

C i=0 ;

migaj_led(2) ;

_delay_ms(800);

}

while(1);

}

A teraz opis. BARDZO ważne jest pierwsze polecenie: sbi(DDRB,2); Pamiętasz, jak wspominałem o rejestrach... Rejestr l)DRx to tzw. rejestr kierunkowy portów I/O mikrokontrolera. Określa on wstępnie, co będzie robić każda „nóżka” układu. Ustawienie danego bitu rejestru DDRx (wpisanie 1 logicznej) powoduje, że dana „nóżka” staje się wyjściem, natomiast wpisanie logicznego „0” powoduje, że dane wyprowadzenie staje się wejściem. Innymi słowy, użycie naszego polecenia powoduje, że PORTB bit 2 staje się wyjściem. Jeżeli nie wpiszemy tego polecenia, procesor nie będzie sterował zewnętrznym wyprowadzeniem - dioda LED nie będzie nam działać.

Pętla do {} while (1) ; powoduje, że będzie wykonywać się w nieskończoność to, co jest zawarte w klamerkach {}. Efektem tego będzie: i=0; zmienna i przyjmuje wartość 0, migaj_led(2); wywołujemy wcześniej omówioną procedurę migania, _delay_ms(800); odczekujemy 800ms i znów' powtarzana jest pętla, począwszy od i = 0;.

Ot i cała filozofia. Jak wadzisz, język C jest w istocie prosty. Wymaga tylko zrozumienia pewnych zagadnień i przyzwyczajenia się do specyficznego zapisu. Reszta pójdzie z górki. W razie pytań zawsze można do mnie pisać, postaram się pomóc.

Jak wgrać program do procesora?

Napisany przez nas program należy skompilować i wgrać do procesora. Jak to zrobić? Poniżej zamieszczam skrócony poradnik - co i jak ustawić. W następnej części dotyczącej programowania wyjaśnię, dlaczego pewne rzeczy należy ustawać tak, a nie inaczej. Pierwszą rzeczą, jaką należy wykonać, jest zmontowanie płytki „mózgu” z poprzedniej części kursu. Gdy są one już gotowe, możemy

wykorzystać samą płytkę „mózgu” lub spiąć obie razem. Nic spowoduje to żadnych uszkodzeń. Mając programator oraz płytki, należy spiąć wszystko razem. Podłączamy zasilanie do płytki „mózgu” w miejsce oznaczone jako AKU. Wartość napięcia obecnie nie jest krytyczna, jeżeli na płytce modułu znajduje się stabilizator 5V. Jeżeli go nie zastosowałeś, to musisz podpiąć 5V, inaczej uszkodzisz mikrokontroler. Co innego, gdy stabilizator jest na płytce. Wtedy wartość napięcia zasilania, jaką można podłączyć, leż}' w zakresie 6,5 V-10V (a nawet 12V). Następnie podpinamy programator do komputera, uruchamiamy AVRStudio z napisanym wcześniej programem. Podpinamy programator do płytki. Teraz należy w AVRStudio skompilować program według wcześniejszego opisu (F7). Jeżeli wszystko zadziałało, to OK. Powinieneś zobaczyć okno z komunikatem widocznym na rysunku 6. Oznacza to, że nie ma błędów' i można plik w'grać do procesora. Teraz wywołujemy okno programatora i wybieramy typ procesora. W moim przypadku jest to ATmegaló, co widać na rysunku 7. Po wybraniu typu procesora klikamy przycisk ,Jiead Signarure”. W dolnej części ekranu pojawią się jakieś teksty, a pod okienkiem wyboru procesora powinieneś zobaczyć napis „Signature matches selected device”. Po tej operacji mamy pewność, że z mikrokontrolerem oraz programatorem wszystko jest OK. Następnie przechodzisz do zakładki ,fuses” i ustawiasz wszystko tak jak na rysunku 8. To jest bardzo ważna operacja! NIE POMYL się, bo grozi to uszkodzeniem mikrokontrolera.

Jeżeli wszystko ustawiłeś tak, jak pokazano na rysunku 9, naciskasz przycisk „Program”. Niekiedy może wyskoczyć komunikat o tym, czy na pewno chcesz wyłączyć JTAG - po prostu zatwierdzasz, że tak. Po wykonaniu tej operacji, w dolnej części okna pojawi się napis „Leaving program-ming modę. OKI”. I od tej chwili nasz procesor taktowany jest zegarem wewnętrznym 8MEIz. Następną czynnością jest kliknięcie na zakładce „Program” i wybranie zawartości „Flash". Należy tu podać ścieżkę dostępu

do katalogu, w którym zapisałeś na początku swój projekt. Plik *.hex znajduje się w tym katalogu, w podkatalogu: default i ma nazwę taką samą, jaką nadałeś, tworząc projekt. Sugeruję również, byś Drogi Czytelniku poustawiał sobie wszystko na tym oknie tak, jak jest to widoczne na rysunku 9.

Po wybraniu pliku i naciśnięciu przycisku „Program ' w sekcji „Flash”, otrzymasz po chwili komunikat „Leavitig programming modę. OK!” i od tej chwili „mózg” Twojego robota ożywa.

Fotografia 4 pokazuje moją płytkę mózgu i programator podczas opisywanych właśnie operacji.

Zachęcam do zabawy z podanym przykładem programu. Poćwicz różne opóźnienia, różne liczby mignięć, samodzielnie zaprojektuj bardziej efektowne sekwencje. Zapoznaj się z linkami podanymi w tej części cyklu. A w razie kłopotów pisz do mnie na adres e-mail.

W elektronice najważniejsze jest eksperymentowanie i brak obaw, że może się coś uszkodzić. Oczywiście potrzebny do tego jest zdrowy rozsądek i trochę wyobraźni. Ale jeśli czytasz ten artykuł, tego na pewno Ci nie brakuje. W dalszej części cyklu dowiesz się, jak spowodować, by płytka „mózgu” reagowała na bodźce zewnętrzne, do czego służą przerwania, co to jest PWM, trochę o rejestrach i masę innych ciekawych informacji.


Marek Majewski

architectus21 st@gmail.com offi ce@ i nv entco. cu


AVRISP with STK525 top module in ISP modę with ATmega16    Rys. 9;|

an Program Fuset jlocfcBfs |Advanced ! HW Sełtings ! HW Info Auto


AVRISP with STK525 top module iń ISP modę with ATmega16

______


Rys. l\


Main Program j Fuses | LockBfts [ Adyanced | HW Settings j HW Info

Dev»ce and Swnature Bytes _________


-1


ATmega16

(NIE 0x340x03

Signature matches selected device

____:

Erase Device

Read Sianature

> ' ••    • j

:

Sełtings

ISPFreguency: 230.4 kHz

Setting modę and device parAmełets. OK' Entering programming modo OKI Reading signature. 0x1 E, 0x94.0x03 OKI Leaying programming modo.. OKI_


AVR1SP with STK525 top módufe in ISP modewith ATmega32

OCOEN

n

JTAGEN

n

SREN

a

CK0PT

n

EESAVE

B00TS2

Boot Rash si2e=2048 wotds start addtess=$3800

yt

BOOTRST

1—!

____

800LEVEL

Brown-out detection at VCC»2.7 V

B0DEN

□. . ________ i

CKSEL

Int. RC Oso. 8 MH2; Start-up time: 6 CK ♦ 0 rns

▼j

HIGH

0x09

L0W

0xC4

j|

'i

Flach

hd Auto read v] Smart wamings

v] Veiily after progtammasg

Piogrom | Verify j Read


• •" -- -

Enteńng programming modę.. OK!

Readingfusęi addiese 0 lo 1.. 0>:C4,0xD9 OKI Leming programming modę . OK!


Etcrce Devtce


E rasę dcvice bełore flash progamrmng    *6 Verify device ałter programming


lr,pu»HEXFte D:\M0JE PROGRAMY W CMest płytek robota\defauit


Program


Vetify


Read


••    v:; •• U v    @ :    |    |

Curraw    EEPB0M Merncuy


Input HEXnfe


Program


tu- Producbon Filc Format

'

lnpu» ELF File

§!•: ' '

Kinnram


___fś.


Fusac and tocktis sełtings rnutt be specified bef«e saving to ELF


Etasing dcvicc.. OK!

Programming FLASH OK! Rearing FLASH.. OKI FLASH contenłs ss equał to file.. OK Leaving piogramming modę.. OK! _



I


Wyszukiwarka

Podobne podstrony:
23 (391) _CPU 8000000UL „stdio.h" Listing 1 int main(void) { sbi(DDRB, 2); do { i=0; migaj
Str141 276 Odpmricdri do ćwiczeń (Pytanie dotyczy tylko kroków 1-7; dla dużych liczb n bardzo czasoc
10 Rozdział 1. Wprowadzenie do Matlaba1.2.4. Okno aktualnego katalogu Przy pracy z Matlabem bardzo w
Bardzo ważne jest, by wziąć do szkoły coś do picia. Może być to na przykład jednodniowy sok marchewk
str 2 sprawdzić, czy wynikiem SDL_Init jest wartość mniejsza od zera. Bardzo ważne jest, aby do funk
351 (22) Z. J amfo A. tocioti i frgo ictiinafogir. Wir5W#u 2005 ISBN *?01-144? 1-9. Oby WN PWN 2005
tu pozwoli sprecyzować, do kogo ma szansę trafie nasza oferta oraz jak bardzo pojemna jest to grupa.
DEMOTYWATORY RÓŻNE PACZKAP0 SZT FOTO (25) Swińsk dotarła już do S www.dem(a Grypa turnilowego Lasu
Image206 (3) Top www rWWWmikrokontrola.pl PODUKCJA I SPRZEDAŻ AKCESORIÓW DO BEZKONTAKTOWEc IDENTYFIK
Image29 (9) Top www częścielektroniczne iż przed autorem jeszcze wiele pracy i problemów do rozwiąza
83614 Image122 (2) Top www Vwww.mikrokontrola.pl POOUKCJAI SPRZEDAŻ AKCESORIÓW DO BEZKOMTAKTOWEJ IDE

więcej podobnych podstron