网站大量收购独家精品文档,联系QQ:2885784924

AVR开发WinAVR与CodeBlocks简单教程45.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR开发WinAVR与CodeBlocks简单教程45

使用WinAVR + CodeBlocks 作为AVR 单片机开发环境 本文档包括: 程序的安装,配置,简单程序的编写,中断服务函数的格式,以及串口使用printf 输出的方法 需要软件:1. WinAVR(GCC AVR) 2.CodeBlocks 一、安装 WinAVR 若不是C 盘特别小,推荐安装在C 盘,后面设置比较方便 先安装WinAVR 的话比较方便,后面装CodeBlocks 的时候就会自动识别GCC 的编译器 安装完后桌面会有6 个图标。。。全部删掉,没用。 二、安装CodeBlocks 同样推荐安装在C 盘,就是一路next 安装完会提示你打开,你就打开,然后提示你选编译器,找到GNC AVR GCC 那个, 设为默认。 三、下面进行软件配置 如果前面是按照先装WinAVR ,后装CodeBlocks 的顺序安装,那么,这一步配置的东西并不多,可以 按喜好自己配置。说一下没有按照推荐方法安装需要检查的几个地方。 1. 打开SettingCompilerGlobal compiler settings 如图: 按照红色方框里面,选择GNU AVR GCC Compiler 。 2. 如图,在Search directoriesCompiler 里面Add 目录C:\WinAVR\avr\include 具体由你 WinAVR 安装的位置决定。 同样设置Linker 里面目录为C:\WinAVR\avr\lib 。 再找到Toolchain executables 这些如果按照默认路径便是已经配置好了,不需要修改。 这样开发环境已经搭建完毕! 推荐使用 CodeBlocks 的原因之一就是它的代码提示功能,在 SettingEditorCode completion 里面可以设置输入几个字符后会进行代码补全,十分实用的功能。 实战演示 流水灯 1. FileNewProject… 选择AVR Project 点Go,Next 输入工程名字。下一步。 2. 相比较于以前版本,多了一个Debug 和Release 选项,想详细了解的可以自己查看相关 资料,这里选择Debug 不选Release。下一步。 3. 这个页面用来选择单片机。勾上Define F_CPU with the following value 相当于在程序里加 上了 #define F_CPUL 用来定义时钟频率 这里把Create Fuse, Lock, Signature files(.fuse .lock .sig) 选项去掉, 把Run avr-size after build 选项勾上,这里可以在编译完成后显示文件大小。 4. 这样工程就搭建完成了。 5. 编写程序 添加头文件 #include avr/iom16.h //ATmega16 具体按照芯片添加 #include util/delay.h //CodeBlocks 自带的一个delay.h 延时延时函数,具体可以打开研究 程序如下: /* 测试程序 */ #include avr/io.h #include avr/iom16.h #include util/delay.h int main(void) { MCUCSR = 0x80; MCUCSR = 0x80; DDRC = 0xFF; PORTC = 0xFF; // Insert code while(1) { PORTC = 0xF0; _delay_ms(100); PORTC = 0x0F; _delay_ms(100); } ; return 0; } 这里可以看到程序的大小。使用自带的.h 文件程序较大,因为要考虑各种复杂情况,自己 使用时简单的推荐自己写。 中断的使用 中断使用时需要添加#include avr/interrupt.h 下面给出给出一个外部中断INT0 的中断配置以及服务函数 void Init_Key(void) { ClrBit(DDRD, 2); ClrBit(DDRD, 3); MCUCR |= 0b0000101

文档评论(0)

mliaojfangwi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档