آموزش Avr-gcc Part1

download آموزش Avr-gcc Part1

of 8

Transcript of آموزش Avr-gcc Part1

  • 7/22/2019 Avr-gcc Part1

    1/8

    !"#$%&()#*$+,--.0123")

    456nanocycle!"$%&%'()*,/013"4#&53(3679:;?3($

    !"7@A#&BCD3(3679E#G?3($H#;I,08,2012,01:10:32pm

    This topic;JLM6

    :789:)

    ,6?#,=@A#$CDEF-/?8+8GHECAJ

    www.eca.ir/products

    NOP%)LQAS%T)DUVVWX'!JPYZ[X)>\]%$^%9&;M#%)G_ 9)A)L`a%)RO>AVR:)(3>)bc)d(f/;>,AVR-GCC

    WinAVR3)14.3%(

    AVRStudio41)4.8%(

    AVRStudio514)66.7%(

    HOI3P/%&a4[P$%)D;hAOWOD3)14.3%(

    CKi=jk 7&lmI CPhP 9Cnop $&;>HMOA CDCq?L#%$AVRSTUDIO$|$,1&!$83`MG)D&a%$!m6ZOK>Cksn!%Ca|3$VISUALSTUDIODChO>Ca%LMP%3O>x[n/!1/!3`O>AVRGCC?;D/CDCCa>%LiIH";PC>P)DIAR%!/!%L";PC>P)D%Lq&f9DCaULn%_1&;&k'!%O`O[D &!(D1$)a1(>U"O*?;!@DP!)G%L#!;WO>o*>$(O>#3+%&'>Ha)+)9_|3hO>C6!;>(O+P!?JO98!(OkDf)*,X4o*>$)aCq%&y>%3a|((pHiI$)a/D|!)DHMOA|3$%`aCq!C+O>%@D,)#%M;PU>%&f!83O"aC!"aX%M;`D%L#!;WO>Ca8!C-"+)9o*>! 8&!(q!|)P8!)DCa83O"a\!"aCDC6;XD@ !C!9CL[A!Ca...%'a)L !8!;WO>; +$89(OkU"O*CL[A!%$!$)OO.X1!;WA$\&;=CD!&?%!ChO>%3P$)RO>x!p3P3"0)sXUDDX%P(D%&O1X'!%Lq)I%O!VXCa3"8&;J!CR !C=o*!|)[*UD'>/;`9CaC&!(q!|)P'!f/;>,8!)DChD

    x*>%9%&$&;>'!?L#%$!"!aD|&!$3Vn>!%LMOP3"DU2O9|$;*Ca'>IAR#%RO1X'!f$;*U#Ua)9CaCP)I%4!%MDH#!CGUa)95+_%P;#)D896CDT!p!UECA!

    ____________________________________________________________________________

    : ,D`>: ?D/U#&q

    1.f/;>,winavr%avrlib

    : ?D/UMO"+P!1.gcc.gnu.org/onlinedocs

    2.ATMEL.COM

    3.avrfreaks.net

    4.winavr.scienceprog.com

    5.en.wikipedia.org

    6.WinAVR-user-manual.html

    7.quantumtorque.com

    0'!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:89\D&1

    ...%CLMD& !3>'OD&%$_&;MP#,

    Usn!%89 1=%)G&$ ?+!&8/;>,&a

    : C[s"6-66595095

    :%$C[s"66080381

    http://adv.eca.ir

    NEWESHOP PRODUCTS

    2012-08-08,13:03h

    )MO1#!20)L>U"O>FFCLMD)5(UX

    LED\>3Oi#4!%!SKY4044GCLMD1000UX

    LEDChO"3Oi#4!%!8!SKY4044GCLMD1000UX

    'Ok0aTNI-U

    (>)nUI$>8&;LG !$,6

    3Oi#UI$>8&;LG !$,6

    &;LG!$,5HA%1) )1>,5V-1A(

    RSS box by p3k.org.

    &$ ?O"[XECA

    $[G8i?8Ve8L78Va!?1G)S),'G4#t=;V*7@>.OG9Cnop$&;>?!)D&a6%)*

    http://www.eca.ir/productshttp://limenics.ir/http://adv.eca.ir/http://adv.eca.ir/http://limenics.ir/http://www.eca.ir/products
  • 7/22/2019 Avr-gcc Part1

    2/8

    8%&CKi=AkH!Mn&$3361=%)G$J!8!)DNew Project8;`>3O`aO"afile --> New Project_ctrl+shift+N

    : 3O`a$KLP!%&?;X=)G%#!%8/#1)O*BxK>83sD1)J`G&$

    : 3O`a$WLP!%&3O`a&af9D3O9!;WO>Ca8)"X)`a%)RO>83sD1)J`G&$

    ChO>1$!$y!PCaHOsn;>'OA%!5+_3$)a$J!3361=%)G!"DOX)X'!CD$;*ZOK>,n!%&$work space'hO>CL";PZOK>'!8;X1=%)G$`#!CaHM9?D/CD1=)G3OP%$U>Ca&;&P;!98;*c8;X_ChO>CL";P?%!x*!$&$U"=!,DXUX&[pCDC>P)DCaHM9#&;#xq8!&!$avrstudio>P)D&$Ca83 !)#89xq%9CP;WDLa%C>P)DU"=!xq/!%p!1=%)G$`#!|!XH#!&H!#&$UL*&$&L*# \&;=CD)"1>a89U6%)*'O 2!9%%$)a1$iL#!?;"/!C\&;=CDauto hide|PCD1)J`G&$solution explorer:o*)D'Lq)I&!)n&!)ncodvision%IAR$;D&!(q!|)PAkH!#&$1=%)GUL*&$&L*#'!Ca

    xq3D%OM;`D%&?;>C>P)DCR !8!)D|$)a1&"!Ca&;&P;!9$;*C8%&%)[O>%>)I1&"!&a'!8!)D_%OM;`Df;X%&?;>C>P)D%%O`a/D%&.solution explorerxqUL*&$\&k8@LP!&$ _c: ChD/DC>P)DU"=!xqX3O`aO"a?%!8%&CLq)I&!)n

  • 7/22/2019 Avr-gcc Part1

    3/8

    H#;I,:y(!)(% '()*,30,2011,10:32:19pmZ#;Xmojtaba_led

    2.visual assistx

    89UIsn!%CaHM9?;X$;*1!;WA$CD%&yX!OE`XCa3OL#!;*)I!>!HM94sqF)ihOG\&;=CD$&;>'!$;*8;`>CD3)D3O`ayAsq)OHo=!33D)OO.XVASSISTXHM94sq)OH)I!%4sq)OHHM94sq)I!X3O`aO"a8)*,CD13P;>URC (I 8%&%ChD4sq

    /!%&yOROq!)IHA+?%!UM;PC>P)DZOK>?$)a4sq)OH/!3sD3O`O[O>Ca&;&P;!9$;*J`9)q8;XC>$;*\+o&=!%(6) ?$/#3+HO"Dn_1&!3P%&?$/#$HO"Dn)+$%13O>H#$3$)+DyA[P$U[LJ> H.A'OOsX&!(q!|)P&$CaHM983O"a\!"a8)#,n!%&$CaHO"Dn'!D&!(q!|)P$;*(I!CaDOX)X'!CDC`RO>!aC>P)D'L";P,n;>>CD3P&!$%9%&)OO.XHO"DnCa13")VASSISTX'L";PD3OM;`D%&3 !)#xq3O9!;*U>ULn%o*>C"D4sqin1)J`GU`O>#M9&!(q!|)P$;*83 !)#89xq?$)a$;"R !8!)D y>%$C (ICaChO>)9K(|. :)x*>C+$8&;La)!$8;X3`LM9%O-LM>8&;La)!$?;!98;XCaHutilavr%$)a!3GC+$86C/!%LO";P?;>$;*Ca3`LM98&3989xq8!)D"" 4%!C (I%x*>lcd.h8)LMO6&xq%O!;WO>%O`aF)q5+$;*io%OM;`O>%O`a$;"R !%&in+(CP#;>D$&;[OaUL@6893O"aD)%O`RO>$WLP!%&|%$C (I1)J`GU`O>/!3sD#|)P&$$;6;>83 !)#89xqHMOA3O`O[O>Ca&;&P;!95

    8)LMO6&xqCaJP%!/!_ChO>/D&!(q!io8&;La)!$x*!$avrC";G8%&3)D1)O+O>&!)navr3OM;`D)a8%&3)D3sD(io.h/!UR'!CR !5%!_C+$%OM;`O>?;>$;*C&aCk3O+D3"$;*M3O`a)L !3sD%%&83 !)#89xq|!X%#!( NOn$CLR$) ChO!PChO!9>%$%HM9&!(q>)P8@LO"Dn( C&;6'!83L[>'>8!)DCL[A!) $)aOi+3O`RO>TKA!?;XC>P)DCD%9%&)+$83 !)#89xqDOX)X'O!9CD3OM;PU>CaULn%33D)OO.X%&83O"aC!"a?%!Ca3O!;WO>)I!5+inC (I!`9!&'!8;XChO>/D%9!`9!&1)J`GU`O>&`a#edit: ChD/D)/1)J`GX3O`aO"a?%!8%&HM9

    H!Mn8;XxA+shortcutH!Mn8;X%33D)OO.X%&83O"aC!"a3OP;LO>title3OM;`Do*>3O`aF;p%&ChO>13$1)J`GU`O>8;XCa%&\a\&;"'!?!;`pheader3OM;`D3OOD3sDin13"|%$C (I&D'!Ca3O`O[O> #header33D)OO.X%&\a\&;"U6&;*3OP;LO>&;&`O!9%_

    C-"+%O!;WO>3O`aF)q5+for3OM;`D_%OM;`DforrDC-"+$J!8!)DyA%!C (ICa13"/D1)J`GU`OG1&D%$3O`O[O>Ca&;&P;!9LP!%&4%!C (I$;*_HM9Uh9a89|IDC-"+$J!8!)D%9U>%$%Uh/q!89|IhP%&C-"+U6%)*|)qHM9f%&JP&$&/mHaCaU[X8;XCaChO>/D1)J`G3[`a$W3O`aHn$CI!$;*(3hP|$)a8&a)9$!$f)OO.XChO!P) 13O>?;index:;P/!8)O.L>int!3OGy!(q!83*!%89|IDUh!(q!\&;=CDCa$;D39!;*U`sf)*a!3+&!3->CDCR !XC`RO>length&!3->%9|%$3"Oq8;X%3OM;`D%&)O.L>%#!4%!3"Oq8;X4%!DX8;X%)D5+_C#)D:;P/!)O.L>Ca3O`aC6;X) C-"+)*a!3+intDHM9)D!)D?%!)*a!3+&!3->zGHM932767(

    4%!H!Mn?G

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:P&3>/ !QVWX

    ) QSF?H: N68Pavrstudio5( AVRGCC#N68P2:H#;I,30,2011,11:27:22pm

    !#$%&

    .3O"[PCLM*%|o#D

    $&;>&$%9t!aC(i&Agcc7%&7&;Jk%?,?=&%%avrstudio.'O+D$&;>'(!&$...%'($)a!)6!)RhXD

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    f/;>,H`(;G&%G$;"P!$Orcadhttp://www.eca.ir/forum2/index.php?topic=64965.0

    TKP1G)S)UV,")$+78V:$CaJP%!X|$)ay[VP%93sD|$)af$;"P!$x!X!H: x!X!CKi=`OA%9'!http://www.atmel.com/dyn/products/tools_card.asp?tool_id=17212

    !"$$$$$$$$$$$$$$$$$%,sina_80,9,0:,ma-bah,/,

  • 7/22/2019 Avr-gcc Part1

    4/8

  • 7/22/2019 Avr-gcc Part1

    5/8

    http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Optimize-Options.html#Optimize-Options
  • 7/22/2019 Avr-gcc Part1

    6/8

    _delay_ms(4000);

    while(1);

    }

    x*>3D%&\!OE`X8)MR>!_COkCDUkCVWh>o>aCaC>P)D$;*codvision%iar:;P/!89)O.L>%OP;LDX%3D|JP!float: HM9)/DOX)XCD%3D|JP!3DCaU9&a_%O`aCL"&CDx3[X%&

    1.alt+f7. 3OhDC>P)D\!OE`X3`#$&!%X3OP(D%&2CI)DCD3)D.toolchain3C*" /!5+.avr/gnu c linkerC*")/CD3)Dlibraries8%&)DO"aD3sDadd$&!;>DOX)XCD%U5DH!Mn&$libprintf_flt.a%libm.a: 3O`aU>139h>)/xR"&$CaU[OX)XCD_3O`aCq

    4C*" /!5+.avr/gnu c linkerC*")/CD3)Dmiscellaneous3"Oq&$z1#%other linker flags- : 89J"qWl,-u,vfprintf -lprintf_flt: 3O`a$&!%3O`RO>139h>)/xR"&$CaU[OX)XCD

    5. 3O`ax1>a1&D%$%&C>P)D%3O`a;O#%&13"|JP!\!)OO.X.

    |&@kH!Mn?G'!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:1)O*B8!)Davrgcc&39xq?$)a$;"R !CD3`>/OPpgmspace.h89%)a>/!1$iL#!D%OP;LO>83 !)#xq'!?$)a$;"R !/!zG%OLM9PROGMEM%const$->)/89%)a>/!1$iL#!Dz1#%%O`RO>1)O*By"qCEq+&$%&?;>)EP$&;>)O.L>: %OP;WO>)O.L>#&$,CDC6;XDy"qCUq+x*!$/!%&)

    pgm_read_byte(address_short)

    pgm_read_word(address_short)

    pgm_read_dword(address_short)

    pgm_read_float(address_short)

    : y"qCEq+&$HD_0)sX1;KP

    const "HD_:;P" "HD_%#!" PROGMEM

    : y"qCEq+x*!$/!HD_?3P;*1;KP

    "HD_:;PDD#`>8%)a>" (&"HD_%#!")

    : 4*>?!;`pCD: y"qCEq+&$HD!;_0)sX

    const unsigned char nom[] PROGMEM=

    {

    /* 0 1 2 3 4 5 6 7 8 9 */

    0X3F , 0X06 , 0X5B , 0X4F , 0X66 , 0X6D , 0X7D , 0X07 , 0X7F , 0X6F ,

    /* 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. */

    0XBF , 0X86 , 0XDB , 0XCF , 0XE6 , 0XED , 0XFD , 0X87 , 0XFF , 0XEF

    };

    : y"qCEq+/!HD!;_?3P;*

    DATA = pgm_read_byte(&nom[0]);

    :y"qCEq+&$HD_0)sX8!)D'(+6f%&

    const prog_ ")O.L>:;P" ")O.L>%#!"

    xq&$Ca)/0&sXCDpgmspace.h: 3O`aHn$13>,

    typedef void PROGMEM prog_void;

    typedef char PROGMEM prog_char;

    typedef unsigned char PROGMEM prog_uchar;

    typedef int8_t PROGMEM prog_int8_t;

    typedef uint8_t PROGMEM prog_uint8_t;

    typedef int16_t PROGMEM prog_int16_t;

    typedef uint16_t PROGMEM prog_uint16_t;

    typedef int32_t PROGMEM prog_int32_t;

    typedef uint32_t PROGMEM prog_uint32_t;

    typedef int64_t PROGMEM prog_int64_t;

    : 4*>

    sina_80,!"$$$$$$$$$$$$$$$$$%,-*.,/0"%,,9,0:,Ice Man, lostlord

    ,4#&!'(!7!)D6.H#!1$)a@!39!)RhX)D&a

  • 7/22/2019 Avr-gcc Part1

    7/8

    const prog_char nom[]

    {

    /* 0 1 2 3 4 5 6 7 8 9 */

    0X3F , 0X06 , 0X5B , 0X4F , 0X66 , 0X6D , 0X7D , 0X07 , 0X7F , 0X6F ,

    /* 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. */

    0XBF , 0X86 , 0XDB , 0XCF , 0XE6 , 0XED , 0XFD , 0X87 , 0XFF , 0XEF

    };

    %J`GH!Mn?G

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:CL"&U"=!,DX8!)6!/!x[n$O>)"1>aHA+'!8;XsramD|&Oq+x*!$&$C`RO!P%98)OO.XCP;+2O9CaL$?!;`pCDCL"&'!%C`RO>$;ACaHM9UP>/C>!$OP$M+CD8(OkOk;aCL"&X3`k8!)D3"CL[A!CaCP;!O>UnO`a&a8&;J !%O9!;WD)I!$;*%O`a1$iL#!C>P)D8;X8$/89CL"&/!%OhO>&;[J>CEq+CaC !1&!$Ca8!CJOLP@`X%sram)>%&4R"!'!y"qCEq+/!1$iL#!D%OP;LO>CaCOA+&$'!%$)a4."!8$;WOD%&%O`a,iX!)#xq!3LD!&$3Dy"qCEq+/!1$iL#!8!)D3"CLiIU"[nHMG8;XCa&;&P;!9$;*83`pgmspace.h%O`a$;"R !C>P!)D8!3LD!&$

    +x*!$%&?;>9CL"&C>P)D4%!%OOD3"CLiIx[nHMG8;XCaU"%&x*>CaC !1!&: 4*>8!)D%3Dy!P%%OP;WDy"q/!%&9?%!C>P)D8;X3s%%O`a1)O*By"qCEq

    #include

    #include

    #include "lcd.h"

    const char FlashString[] PROGMEM = "INTER YOU'R KEYS";

    void SendSTR_P(const char *FlashSTR);

    void main(void)

    {

    .

    .

    .

    lcd_clrscr(); //Clear display and set cursor to home position

    lcd_gotoxy(0, 0); //Set cursor to specified position

    SendSTR_P(FlashString); //Display character at current cursor position

    .

    .

    .

    while(1);

    }

    void SendSTR_P(const char *FlashSTR)

    {

    uint8_t j;

    for (j= 0; pg m_read_byte(&FlashSTR[j]); j++)

    {

    lcd_putc(pgm_read_byte(&FlashSTR[j]));

    }

    }

    a'!,n!%&$1&!3PCOA%!0)sX?%!CD8/OPC+$Ca1&!$$;6%%98!C+$f%&>!8%)a>/!1$iL#!D&PSTR: 4*>8!)D1)+O>\&;=

    #include

    #include

    #include "lcd.h"

    void main(void)

    {

    .

    .

    .

    lcd_clrscr(); //Clear display and set cursor to home position

    lcd_gotoxy(0, 0); //Set cursor to specified position

    SendSTR_P(PSTR("INTER YOU'R KEYS")); //Display character at current cursor position

    .

    .

    .

    while(1);

    }

    void SendSTR_P(const char *FlashSTR)

    {

    uint8_t j;

    for (j= 0; pg m_read_byte(&FlashSTR[j]); j++)

    {

    lcd_putc(pgm_read_byte(&FlashSTR[j]));

    }

    }

    ,DX8JD3OP;LO>: C6;XSendSTR_P8%&y!P8!)Dlcd,DX/!lcd_puts_p. 3O`a1$iL#!%9

    %h"H!Mn?G

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:

    bHM9Ja/!xRh>

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    !"$$$$$$$$$$$$$$$$$%,sina_80, E_Ravari, mostafahk, mahdi1696,9,0:,Ice Man, lostlord

    ,4#&!'(!7!)D8.H#!1$)a@!39!)RhX)D&a

    sina_80,!"$$$$$$$$$$$$$$$$$%,9,0:,Ice Man, lostlord

    ,4#&!'(!7!)D5.H#!1$)a@!39!)RhX)D&a

  • 7/22/2019 Avr-gcc Part1

    8/8

    TKP1G)S)UV,")$+78V:H!Mn)9D?5!CR !%9C+$D"&>C3O`RO!P1$iL#!$&!(%3aavrgcc>|JP!%&$&!(%3a?;!9&af$;*'!%13"CL";PCP;WDLaX3`kHP;Xf!)D%O`a&a%O`a1$iL#!ysD!;X/!%OP;LD3DZ-q13O'!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:|$;*Ca8(OkHM9\&;=CkCDCP%3O>UMa|&!$4!;#ULn%o*>1)*5DC"D&;d'!%9)I!4+)@D$;*UA%%O`RD%&&R !?;>$;*3D%13O!ChO>8&;Jk%`O[D |!;WO>C`RO>:%)"U=*86/!%O`RO>0)sX%&4D;"I)O.L>HM9&;& !)I!ChD1)O9BJaCa$)a0)sX%&'%

    )sX,DXULn%o*>HM9\&;=CkCDU>;!p89)LMO6&CDU#)L#$xR"CR !%983sD4!;#3P)O+O>&!)n9)LMO6&|%3a8;X,DXU6%)*%8$%&%)$->%O`RO>0

    ?;L@6;X/!?;`!>

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:?;!9D3>;OP%";*f/!U"O*>!|$)aDVP&[R%&C>P)D'!'>AvrStudio:1&;WD?;X$&3D3"%LiI3>%!|)d*CD%&CLRP3`k>!.%`RO>4+)LhOD

    $F^uy"

    CI&Buildevents:

    |3O!@iPf/ !8(OkWO9'>

    &$Visual Studioq91=%)G?$)ax1>a/!3sD%x[nCaHM9?R>!'!%OJ+891=%)Gc*H)3>8!)D!)6!/!x[n'O!;WDo*>.ChD|JP!U=*?>)backup'!.'3D|JP!U@P(+9xq&$8)OO.XUR!aC>P)DZ#;X.')O+D@"q/!event.'O`a!)6!x1>a3sD'O+&$%&8!C>P)DCa13D%&?R>!'!!"CDCP;LO>9

    $F^uy"

    CEq+x*!$ % & )EP$&;> CL"&U"=!,DX8 !)6!/!x[n$O>)"1>aHA+ '!8;Xsram...%C`RO> $;A

    8)O.L>CaHM9Usn;>%@P%!%HM9H#&$JRZ-q'$;>)q!"CaU>)q'!!U[LJ>n,$`6$HD_\pod!U>!XCP)I%.1)O+D&!)nHD_&!3->D8%M>%ChD0)sXC>P)D?%&$&$,CaC !CL*!3P!1[L"!'!CD%&!"Ca8(Ok>!.3P&!$&!)ny"qx*!$MC>P)D?%&8`[>)DCay"q&$.ChO>#GUa3$CR"DMChO>F;pCaHMOP8/#1)O*B)I1&"!:;PZ-qCa%O`O[O> %O`RO>:;6&Cd;D)>8%)a>CDULn%CaHM9%9'O!9)dWD.C* CD%&const char.C`RP1[L"!)I1&"!:;PQOWhX8!)D)"1>aX1$)aF;p

    $F^uy"

    8;XCEq+U93P>/#$&;>&$?L#%$avrstudio...|&!$4 !;#

    /!CWMP'!\O"!pU>!X$O>)E`DAvrStudio##!)DGCCD##!'!)D%13"8&!mICGWinAVRd!ND&>`OpC>P)Dx1>a1;KPoa%9)L>!&G?$)a#G1;KP'!)D`D.HM9P)Lh>8!)D13"Ca!&!\poWinAVR.HM9U>;!p)O.L>'OP%3DCaHMOPU6OL+ !MU=*,n!;>&$(6X3pn`!:%)"CEq+'OG#&$,/!\pod!?;Lpod!$D'>UA%.ChO>1)O*B.C`RO>3"&4%!CD)*,/!L#!>!.C`RO>3"&CE

    '!JP!)3>CD0"WXf& !(IH#!13"6&*

    TKP1G)S)UV,")$+78V:

    : CDf)G