tutorial avr (27.02.2011)

Upload: costelchelariu

Post on 15-Jul-2015

485 views

Category:

Documents


5 download

TRANSCRIPT

TutorialIntroducere n programarea i utilizarea microcontrollerelor Atmel AVR

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR

CuprinsPartea 1 - Hello world!..................................................................................................................3 Introducere....................................................................................................................................3 De ce ai nevoie?...........................................................................................................................4 Programarea uC-ului.....................................................................................................................5 Cum scriu cod pentru uC?............................................................................................................8 Cum transfer programul n uC?..................................................................................................10 Leduri clipitoare......................................................................................................................11 Tema 1........................................................................................................................................12 Partea 2 Push the button..............................................................................................................12 De ce ai nevoie?..........................................................................................................................13 Cum folosesc butoanele n cod?.................................................................................................13 Exemple......................................................................................................................................14 Partea 3 The clock is ticking........................................................................................................16 Exemple .....................................................................................................................................17 Partea 4 Fade to black..................................................................................................................19 Cum se folosete?.......................................................................................................................19 Exemple......................................................................................................................................19

2

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR

Partea 1 - Hello world!Introduceren aceast prim parte a tutorialului vei face cunotin cu lumea microcontrolerelor folosind un Atmel ATMega8 i nite leduri. Cu toate ca ceea ce ine de microcontrollere este explicat la nivel de absolut ncepator sunt necesare cunotine cel puin medii de programare n C. n mare parte totul va fi explicat n limba romn dar sunt necesare cunotine de limba englez pentru a nelege anumite lucruri. Ce este ATMega8? Este un microcontroller cu 8KB memorie Flash (e suficient pentru un program destul de complex), 1KB memorie RAM(acolo sunt allocate variabilele folosite in program), 512B EEPROM (aici poi stoca date; spaiul e cam mic) i muli pini pentru intrri / ieiri. Cam aa arat:

La acest microcontroller vei conecta cteva leduri cu care ne vom juca mai trziu. n cazul n care ai uitat cum arata un led i cum se conecteaz arunca o privire pe imaginea de mai jos:

3

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR

De ce ai nevoie?Ca s te poi apuca de programarea propriu-zis ai nevoie nti de un circuit care s poat ndeplini funciile implementate n program (program la care m voi referi n continuare ca soft sau firmware - FW). Pentru realizarea circuitului ai nevoie de urmtoarele: Letcon, fludor, sacz (colofoniu) pentru lipirea componentelor (dac foloseti breadboard nu sunt necesare). n cazul n care nu ai mai lipit pn acum componente uit-te la filmuleul din link-ul urmator: http://www.youtube.com/watch?v=AOdnGUMi7lQ Cablaj de test sau breadboard 8 leduri 8 rezistene (100ohm sunt ok) 7805 regulator de tensiune pentru a putea alimenta circuitul de la cam orice alimentator gsit prin cas cu tensiune DC mai mare de 7V. ATMega8 microcontrollerul folosit n acest tutorial Fire de legatur USBasp programatorul folosit n acest tutorial. Poi folosi orice programator cu programele adecvate. Pe lng resursele hardware mai ai nevoie i de nite programe cu care s scrii / compilezi codul i cu care s transferi softul rezultat n microcontroller (cuvntul e destul de lung aa c n continuare voi folosi notaia uC). Programele necesare sunt urmatoarele: AVR Studio 4.18 mediul de dezvoltare a codului. Conine i un simulator foarte util. (http://en.stkshop.com/download--download_id-65.html) AVR Studio SP3 se instaleaz mpreun cu AVR Studio 4.18. l gseti aici: http://www.atmel.com/dyn/resources/prod_documents/AVRStudio4.18 SP3.exe WinAVR compilatorul de C care se folosete mpreun cu AVR Studio 4 (http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinA VR-20100110-install.exe/download) Khazama Programmer programul cu care se transfer softul n uC (http://khazama.com/project/programmer/)

4

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR Circuitul pe care l vei folosi n aceast prim parte a tutorialului este cel din imaginea de mai jos. Va trebui ca folosind uneltele descrise mai sus s conectezi componentele ntre ele ca n schema. Recomandat este ca toate ledurile sa fie montate ntr-un singur rnd pentru a nelege mai bine exemplele de cod prezentate. Lng leduri se vor monta (vertical - pentru a face economie de spaiu pe plcu; orizontal n cazul n care spaiul nu e o problem) rezistenele. Conexiunile pn la uC se vor face folosind fire de legtur. Poziia conectorului pentru programare nu este critic dar ncearc s aranjezi componentele n aa fel ncat s ocupi ct mai puin spaiu. Pe msura ce vei parcurge tutorialul plcua se va umple cu componente!

Programarea uC-uluiPentru a nelege ceea ce urmeaz este necesar s citeti din datasheet-ul uC-ului (http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf) urmtoarele: Pag. 2 Pin configurations 5

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR Pag. 5 Port B Pag. 51 I/O Ports pn la Table 20 (Pag. 53) Pag. 55 pn la Digital Input Enable and Sleep Modes

AVR Studio 4 Dupa ce ai citit ce este indicat mai sus te po i apuca de programarea propriu-zis. AVR Studio 4 este programul n care vei dezvolta, compila i simula codul. Pentru crearea unui proiect nou deschide AVR Studio 4. n fereastra care i apare selecteaz New Project apoi AVR GCC.

D un nume proiectului i selecteaz unde vrei sa fie salvat apoi apas Next.

6

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR

Selecteaz AVR Simulator iar n dreapta ATMega8 apoi apas Finish.

7

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR

n fereastra care i apare vei scrie codul.

Cum scriu cod pentru uC?Poate prea complicat la nceput ns este n mare acelai C pe care poate c l-ai facut la informatic n liceu. 8

Tutorial Introducere n programarea i utilizarea microcontrollerelor Atmel AVR Ca i n liceu codul ncepe cu headerele necesare. Acum vei folosi doar #include pentru accesarea pinilor. Urmeaz venicul void main() n care apare codul propriuzis. Pn s ajungi s scrii cod trebuie s tii cteva noiuni mai puin folosite n programarea PC-ului: Familia de uC AVR lucreaza pe 8bii. Asta nseamn ca toi registri au lungime de 8 biti putnd stoca o valoare ntre 0 255 0 x00 0 xFF 0b00000000 0b11111111 . 1 logic = VCC (n cazul de fa 5V); 0 logic = GND (0V) (1