关闭

关闭

关闭

封号提示

内容

首页 基于WinAVR编译器和Avr_Studio4的AVR最小系统入门教程

基于WinAVR编译器和Avr_Studio4的AVR最小系统入门教程.pdf

基于WinAVR编译器和Avr_Studio4的AVR最小系统入…

悄悄跟你相逢 2012-04-02 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《基于WinAVR编译器和Avr_Studio4的AVR最小系统入门教程pdf》,可适用于IT/计算机领域,主题内容包含救火车单片机工作室http:wwwqmcnWINAVR中文教程一、安装WINAVR是一款开发AVR系列单片机的免费编译软件。您可以在网上搜索或者到w符等。

救火车单片机工作室http:wwwqmcnWINAVR中文教程一、安装WINAVR是一款开发AVR系列单片机的免费编译软件。您可以在网上搜索或者到wwwqmcn中资源下载栏目中下载安装完WINAVR的菜单。二、建立项目运行ProgrammersNotedpadWinAVR救火车单片机工作室http:wwwqmcn建立项目组如下图:救火车单片机工作室http:wwwqmcn建立项目如下图:输入工程名:first放在目录D:tt下救火车单片机工作室http:wwwqmcn在新建的文件中输入第一个程序保存到项目目录d:tt中文件名定作firstc在first项目上点右键救火车单片机工作室http:wwwqmcn选择刚才保存的firstc文件选择存盘后项目已经建成。但是要编译还要配置Makefile文件。请继续看下面的编译调试步骤。三、编译调试点击运行菜单中的Mfile项救火车单片机工作室http:wwwqmcn输入主文件名即含有main函数的文件名我们在上面保存的文件名是firstc这里填入first设定MCU型号。这里我们用的是MEGA其他各项我们都使用默认设置。选择另存为把这个配置文件保存到项目目录中。救火车单片机工作室http:wwwqmcn还有一个问题。就是默认的配置是M晶振我用的是M的。这样在使用延时函数时就不准了。在PN(Progrmmer'sNotepad)中打开d:ttMakefile文件救火车单片机工作室http:wwwqmcn把FCPU=改为FCPU=就是M选择保存就完成的Makefile文件配置配置或改动Makefile文件后要执行一次MakeClean选项再选择MakeAll选项编译如果编译正确Output窗口会输出以下内容:>"makeexe"allbeginavrgcc(GCC)(WinAVR)Copyright(C)FreeSoftwareFoundation,IncThisisfreesoftwareseethesourceforcopyingconditionsThereisNOwarrantynotevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSECompilingC:firstcavrgcccmmcu=atmegaIgdwarfDFCPU=ULOsfunsignedcharfunsignedbitfieldsfpackstructfshortenumsWallWstrictprototypesWa,adhlns=firstlststd=gnuWundefMMDMPMFdepfirstodfirstcofirsto救火车单片机工作室http:wwwqmcnfirstc:::warning:nonewlineatendoffileLinking:firstelfavrgccmmcu=atmegaIgdwarfDFCPU=ULOsfunsignedcharfunsignedbitfieldsfpackstructfshortenumsWallWstrictprototypesWa,adhlns=firstostd=gnuWundefMMDMPMFdepfirstelfdfirstooutputfirstelfWl,Map=firstmap,creflmCreatingloadfileforFlash:firsthexavrobjcopyOihexReepromfirstelffirsthexCreatingloadfileforEEPROM:firsteepavrobjcopyjeepromsetsectionflags=eeprom="alloc,load"changesectionlmaeeprom=nochangewarningsOihexfirstelffirsteep||exitCreatingExtendedListing:firstlssavrobjdumphSfirstelf>firstlssCreatingSymbolTable:firstsymavrnmnfirstelf>firstsymSizeafter:AVRMemoryUsageDevice:atmegaProgram:bytes(Full)(textdatabootloader)Data:bytes(Full)(databssnoinit)end>ProcessExitCode:>TimeTaken::在工作目录d:tt中生成了hex文件firsthex救火车单片机工作室http:wwwqmcn四、连接AVRStudio仿真这里使用的是AVRStudio版本。运行时选择firstelf文件打开。选择仿真设备AVRSimulator和使用芯片ATmega这时选的设备是AVRSimulator即软件模拟仿真。您如果使用仿真器可以选择其他项目前常见的仿真器一般要选JTAGICE项救火车单片机工作室http:wwwqmcn现在您可以进行仿真调试了。五、常用函数介绍、EEPROM访问函数在使用前应包含头文件#include<avreepromh>inteepromisready():宏定义EEPROM准备好(EECR=)返回非否则返回unsignedchareepromreadbyte(unsignedintaddr):从EEPROM读取addr地址处的字节数据。救火车单片机工作室http:wwwqmcnunsignedinteepromreadword(unsignedintaddr):从EEPROM读取一个整数低字节地址addr高字节地址(addr)。voideepromreadblock(void*buf,unsignedintaddr,sizetn):从EEPROM的addr地址开始读取n个字节到bufvoideepromwritebyte(unsignedintaddr,unsignedcharvalue):向EEPROM的addr地址处写入字节数据value。voideepromwriteword(unsignedintaddr,unsignedintvalue):向EEPROM的addr地址处写入整数数据value。voideepromwriteblock(constvoid*pointerram,void*pointereeprom,sizetn)、数学函数在使用前应包含头文件#include<mathh>,而且mathh数字函数库中定义的函数需要libma库文件的支持因此在连接时增加lm参数或者makefile的LDFLAGS=后面追加lm参数。MPI:常数为MSQRT:常数为doublecos(doublex):返回以弧度形式表示x的余弦值。doublefabs(doublex):返回x的绝对值。doublefmod(doublexdoubley):返回xy的余数doublemodf(doublex,double*iptr):把浮点数分解成整数部分和小数部分整数部分存到pint指向的变量小数部分应当大于或等于而小于并且作为函数返回值返回doublesin(doublex):返回以弧度形式表示x的正弦值。doublesqrt(doublex):返回x的平方根doubletan(doublex):返回以弧度形式表示x的正切值doublefloor(doublex):返回不大于x的最大整数doubleceil(doublex):返回不小于x的最小整数doublefrexp(doublex,int*exp):把浮点数x分解成数字部分y(尾数)和以为底的指数n两个部分即x=y*ⁿ,y的范围为y,y值被函数返回而n值存放在prxp指向的变量中doubleldexp(doublex,intexp):返回x*expdoubleexp(doublex):返回以e为底x的幂即exdoublecosh(doublex):以弧度形式返回x的双曲余弦值doublesinh(doublex):以弧度形式返回x的双曲正弦值doubletanh(doublex):以弧度形式返回x的双曲正切值doubleacos(doublex):以弧度形式返回x的余弦值doubleasin(doublex):以弧度形式返回x的正弦值doubleatan(doublex):以弧度形式返回x的正切值doubleatan(doublex,doubley):返回yx的反正切其范围在π~π之间doublelog(doublex):返回x的自然对数doublelog(doublex):返回以为底的对数doublepow(doublex,doubley):返回xy值intisnan(doublex):如果x为非负数(NAN值为xffffffff),返回否则返回intisnaf(doublex):如果x的值为正溢出(INF值大于xf)和负溢出(INF值小于xff)则返回否则返回救火车单片机工作室http:wwwqmcndoublestrtod(constchar*s,char**endprt):将ASCII字符串转换为double数doublesquare(doublex):返回x的平方根doubleinverse(doublex):返回x、看门狗定时器函数在使用前应包含头文件#include<avrwdth>wdtreset():复位看门狗(喂狗)wdtenable(timeout):打开看门狗定时为timeoutwdtsisable():关闭看门狗、延时函数在使用前应包含头文件#include<utildelayh>delayus(doubleus)us的精确延时参数为double最长为us。delayms(doublems)ms的精确延时参数为double最长为ms。、中断函数在使用前应包含头文件#include<avrinterrupth>sei()开中断cli()关中断中断函数格式为:ISR(中断向量名){你的程序}例:ISR(INTvect){你的程序}中断向量名请在芯片的库文件中查找。例如mega库文件在C:WinAVRavrincludeavriomh。。。。。。*ExternalInterruptRequest*#defineINTvectVECTOR()#defineSIGINTERRUPTVECTOR()*ExternalInterruptRequest*#defineINTvectVECTOR()#defineSIGINTERRUPTVECTOR()。。。。。。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/13
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料