You are on page 1of 8

L p trnh v i WinAVR

WinAVR l cng c chnh ti dng trong cc bi hng dn s dng cc modules trn chip AVR bng ngn ng C. Tuy nhin, bi ny ti khng ni v lp trnh C m ch yu hng dn cch ci t v s dng WinAVR. Ti s dng v d qut LED ca bi "Lm quen AVR" minh ha, nhng phn code s c vit li bng ngn ng C thay cho ASM.
I. Gii thiu WinAVR. Ti sao C: nh ti trnh by cc bi hc trc, khi bn hiu v AVR, thc hin cc ng dng, bn c th khng nht thit phi lun lp trnh bng ASM. Ngn ng cp cao nh C s gip cho bn xy dng cc ng dng nhanh chng v d dng hn, tuy nhin khng v th m bn qun ASM, lp trnh bng C kt hp ASM l gii php hay nht. Mt ch l chng ta ch s dng C n gin ha lp trnh tnh ton, cu trc iu khinlp trnh C cho AVR khng c ngha l bn khng cn bit cu trc v cch thc hot ng ca chip!!! Ti sao WinAVR: WinAVR (c l Whenever: theo tc gi ca WinAVR) l mt b phn mm m ngun m bao gm cc cng c cho dng vi iu khin AVR . WinAVR chy trn nn h iu hnh Windows, n bao gm cc cng c sau:

Trnh bin dch avr-gcc: GNU GCC l trnh bin dch C, C++ pht trin bi cng ng m ngun m GNU, avr-gcc pht trin ring cho AVR.

Chng trnh np chip avrdude. Chng trnh debugger avr-gdb. Programmer Notepad: trnh bin tp code h tr nhiu ngn ng nh C, C++, CSS, HTML, Java,

MFile: tin ch to cc file Makefile dng trong qu trnh bin dch code

Ct li ca WinAVR l trnh bin dch GNU GCC v th vin avr-libc, y l b cng c lp trnh C min ph hon chnh duy nht cho AVR. C th ni b cng c ny gp phn khng nh gip cho chip AVR ngy cng tr nn ph bin. WinAVR lin tc c cp nht v hon thin bi rt nhiu ngi, ngun ti liu v chng

trnh mu vit bng cng c ny l rt lny l nhng l do chnh khin ti chn WinAVR gii thiu vi bn. Download v ci t: c 2 cch bn ci t b cng c C cho AVR, cch th nht, bn download tng phn gm binutils, gnu-gcc, avr-libc, v avrduderi ci t (cch ny thng c s dng trn h iu hnh Linuxti s gii thiu trong 1 ti liu khc) v cch th 2 l dng WinAVR (dnh cho windows). Bn c th download trc tip phin bn mi nht ti website chnh thc ca WinAVR: http://winavr.sourceforge.net/index.html. Qu trnh ci t tng i d dng v bn c th ch cn lm theo cc la chn mc nh. Sau khi ci t WinAVR vo my (ti gi s th mc ci t ca bn l C:\WinAVR) bn s c y b cng c t IDE (Integrated Development Environment) bin tp code, trnh bin dch, linker, chng trnh np chip, tin ch to Makefile Programmer Notepad (pn): Programmer Notpad l phn mm mi trng pht trin tch hp (IDE) min ph cho vic lp trnh cc ngn ng nh C, C++, CSS, HTML, Java,Tuy giao din ca pn kh n gin nhng y l cng c rt hon ho v c tch hp sn trong WinAVR, avr-gcc lugin c tch hp sn trong pn cho WinAVR nn chng ta c th bin dch code, download chng trnh vo chip trc tip vi pn. (c th tham kho thm v pn ti website http://www.pnotepad.org) (ch , bn c th vit code cho avr-gcc bng AVRStudio, Eclipse IDE hay ngay c vi Windows Notepad...). MFile: bin dch 1 chng trnh bng trnh bin dch gnu gcc, bn cn 1 file tn l Makefile khng c phn m rng, file ny cha thng tin cn thit nh thng tin v trnh bin dch, target (tn cc file code cn dch), loi chip, trnh np chip MFile l tin ch gip chng ta to cc Makefile nhanh chng v chinh xc. MFile c tch hp sn trong WinAVR. II. Khi ng cng Programmer Notepad (pn). Sau khi ci t WinAVR, trn desktop ca bn c th s xut hin 2 icon ca pn v MFile nh trong hnh 1.

Hnh 1. Icons trn Desktop

Phn ny chng ta tm hiu cch vit mt chng trnh C trong pn thng qua 1 v d n gin. T Desktop, hy khi ng pn, ln u chy pn bn s thy giao din ca chng trnh nh trong hnh 2.

Hnh 2. Giao din pn Trc ht chng ta hy ci t thm mt s tnh nng vo pn bao gm chc nng to ra file coff (dng m phng vi AVR Studio Simulator) v chc nng va bin dch va np chip. T menu chnh ca pn, chn menu Tool > Option, bn s thy hp thoi Option xut hin, hy chn mc Tool trong hp thoi Option ri nhn button Add nh trong hnh 3.

Hnh 3. Option cho pn. Trong hp thoi New Tool Properties hy t cc thng s nh trong hnh 4:

Hnh 4. Add chc nng to file COFF cho pn.

Lp li cc bc trn add thm chc nng va bin dch va chng trnh vo pn (xem hnh 5).

Hnh 5. Add chc nng Make v Program cho pn. Nhn OK kt thc ci t, click vo menu Tools bn s thy c 2 lnh mi c add vo, chng ta s s dng chng sau ny.

Hnh 6. Tools menu.

Khi add cc chc nng mi vo pn, bn ch 2 mc l command v parameters, command th lun l make v y chnh l lnh a nng khi lm vic vi trnh bin dch gnu-gcc. Parameters l cc thng s gi km vi lnh make, nh vy khi bn click vo 1 dng lnh mi to ra, pn s yu cu trnh dch gcc thc hin lnh make vi thng s m bn to. Chng ta sn sng vit v d u tin bng WinAVR. T pn, chn menu File>New>Project , bn chn ni lu Project ca bn (v d C:\WinAVR\My Project) v hy t tn cho Project ca bn l AVR1-gcc v chng ta s vit li v d cho bi AVR1 bng C. Hy type on code sau vo ca s new (phn bn phi trong pn) List 1. v d qut LED bng C. 1 //file: main.c 2 //Description: AVR1 by GCC, "Cung hoc AVR" Series 3 #include <avr/io.h> 4 #include <util/delay.h> 5 unsigned char val=1; 6 int main(void){ DDRB=0xFF; //set PORTB as output lines 7 while(1){ 8 PORTB=val; 9 _delay_loop_2(65000); 10 11 val*=2; 12 if (!val) val=1; 13 } 14 return 0; 15 } Chn File>save lu on code trn thnh 1 file c tn l main.c. Trong vng Project (phn bn tri), click phi vo Project AVR1-gcc ri chn Add Files, hy add file main.c vo Project ca bn. Hy th bin dch Project ca bn bng cch chn menu Tools>[WinAVR] Make All, quan st vng thng bo bin dch (nm pha di) bn s thy thng bo nh sau:

Ngha l c li trong qu trnh bin dch, qu trnh bin dch tht bi v No rule to make target all. Li ny do Project ca chng ta khng c file Makefile. Hy to 1 file Makefile bng tin ch MFile. T Desktop, chy chng trnh MFile, giao din ca MFile rt n gin nh trong hnh 7 (ch : chng ta c th thm bt cc ci t cho MFile bng cch chnh sa file mfile.tcl trong th mc ci t ca WinAVR).

Hnh 7. Chng trnh tin ch MFile. Hy chn menu Makefile>Main file name, mt hp thoi nh xut hin, in tn file chnh trong Project ca bn (trong trng hp ca chng ta y l main), nhn OK. Tip tc chn Makefile > MCU type > ATmega > atmega8. i vi Project v d ny, ch cn set 2 tham s tn file v loi chip nh trn l , bn chn File>save as v lu Makefile vo chung th mc cha Project

(C:\WinAVR\My Project trong trng hp ca ti). Bn c th tt chng trnh MFile. Tr li pn, chn menu Tools>[WinAVR] Make All ln na bin dch, ln ny bn s thy thng bo cui cng l >Process Exit code: 0, bin dch thnh cng. Vo th mc cha Project bn s thy 1 file main.hex c to ra. th nghim chc nng to file COFF m bn add vo pn, chn Tools > [WinAVR] Make COFF, quay li th mc cha Project bn s thy 1 file mi main.cof c to. Hy tm v copy file AVR1.DSN (file ca phn mm Proteus) trong bi hc AVR1 vo th mc Project ca bn, chy AVR1.DSN vi Proteus, i file program cho chip atmega8 thnh main.hex (xem li bi "M phng bng Proteus" nu bn qun cch thc hin). Chy m phng kim tra kt qu, nu kt qu tng t nh trong AVR1, bn thnh cng. Lu Project ca bn. Nh vy bn hon tt vic ci t v to Project mi vi WinAVR. Vic cn li m bn phi thc hin chnh l vit code, tc lp trnh bng ngn ng C trong WinAVR, phn ny bn hy tham kho bi "C cho AVR".

You might also like