|
WinAVR(GCC)快速入门
导读:使用XLISP软件不仅可以用来开发51单片机,
更加可以用来开发avr单片机,我们以avr 8515芯片为例子,来介绍它的使用方法,希望对感兴趣的朋友有所帮助。 如果您对avr感兴趣,
可以重新购买2片atmega8515来进行试验。
WinAVR 的配置与
makefile
一直是新手入门的两个难点。我们经过详细的测试,推荐大家不需要作任何的配置,
并且介绍了如何用最简单的方法创建自己的 makefile
文件。利用本文,十来分钟你就能入门 WinAVR /GCC.
首先:
安装光盘中的:avr应用/avr开发工具/WinAVR-20050214.exe软件安装好后,你就能在电脑上看到如下的功能菜单:
说明如下:
|
名称
|
说明
|
|
Programmers
Notepad
|
GCC语言编辑器。可提供应用程序接口。
|
|
Mfile
|
GCC需要一个叫
makefile 的参数文件才能进行编译。Mfile
是一个工具,可以让用户方便地修改 makefile
上的参数。不过我们不推荐使用它。我们推荐直接用记事本打开
makefile 进行编辑。
|
|
AVR
Insight
|
仿真调试工具
|
|
TkInfo
|
GNU的超文本浏览器
|
|
Uninstall
WinAVR
|
卸载 WinAVR 软件
|
|
WinAVR
User Manual
|
WinAVR
用户手册
|
|
GNU
Maunals Online
|
GNU的在线帮助
|
|
AVR-libc
Manual
|
AVR
GCC的C语言函数库帮助手册
|
步骤一:打开 PN 工具
步骤二: 在硬盘建立一个专门存放avr文件的目录, 例如, 我们在D:\盘新建一个AVR的目录,注意!不要用中文目录!也不要存在其他的有中文目录的路径。
在PN工具的编辑窗口中输入下面的一个简单的跑马灯程序:
在PN工具的编辑窗口中输入下面的一个简单的跑马灯程序:#include "avr/io.h"static void io_init(void)
{
PORTA = 0xff;
DDRA = 0xff;
}
void mDelay(uint16_t DelayTim)
{ uint16_t i;
for(;DelayTim>0;DelayTim--)
{ for(i=0;i<4000;i++)
{;}
for(i=0;i<3900;i++)
{;}
}
}
int main(void){
uint8_t i=0;
io_init();
while(1)
{ if(++i>=8)
i=0;
PORTA=~(0x01<<i); //改为0x80>>i可改变流水灯方向mDelay(500);}
}
然后:菜单 File -->save as..把它保存在刚刚建立的d:\avr目录下,命名为led.c

回到前面点程序菜单的winavr的mfile出现前面的界面
点击主菜单Makefile->Main file name…即出现如图2所示的对话框,通常不需要更改此选项,最终产生的hex文件即main.hex。
接着点击Makefile->Mcu type,设定所用单片机的型号,如图3所示我们选择ATmega8515为我们所用的型号。
点击:Make-->Debug Format:可选择输出的调试文件格式,应选择最后一项:ELF/DRARF-2(AVR Studio ELF,GDB[experimental] ),这样可以由产生供AVR
studio 4以上版本调试用的ELF格式的文件。
点击:Make-->C/C++ Source Files……出现选择文件名的对话框,如图4所示,请用“Choose file…”钮选择你所要编译的文件,注意,一定要将Include
main.c前面的勾去掉,除非你的确有一个名为main.c的文件。
图4 选择主文件
其他的项一般可以不必改动。
更改后用File-->Save
as…将该makefile文件保存至刚才所建文件夹d:\avr中。
编译 (Make All):
回到Programmer
Notepads中,点击:Tools->Make
All,即可对该文件进行编译、链接等处理,有关信息在output窗口中呈现。如有错误,单击错误行,即可定位,以便对此进行修改,直到编译、链接完全正确为止。此时,output窗口显示:>
Process Exit Code: 0 (否则程序有问题请检查)
烧写程序/演示
连接好XL2000或者xl600单片机实验仪,,锁紧座上放入一片ATmega8515L或Atmega8515,开启电源
, 运行XLISP软件,
XLISP软件中选择相应的芯片型号,器件配置选项中按 图6 设置
按照上图选择:
单片机工作在内部时钟8MHZ
注意:熔丝位配置错误将会锁死芯片导致再编程失败。
加载编译的文件main.hex 烧写程序,正常即可观查到流水灯效果!
特别注意!由于51单片机和AVR单片机的复位信号相反,而XL600/XL2000主要设计为51单片机使用,为此,
如果按XL600/XL2000的复位键后,则停止运行,
按下不动,才重新运行。初学者请注意!另外由于软件设计的原因可能要点两次智能一键通,
才能正常的下载。
附表:Atmega8515/L的熔丝配置说明(详细资料请参考官方Datasheet)
表1.时钟源选择

默认时钟源:
芯片在出厂时CKSEL
= “0001”, SUT = “10”。默认时钟源为有最长启动时间的内部RC振荡器(频率1M)。默认设置可以保证用户通过系统内或并行编程得到他们期望的时钟源。
标定的片内RC
振荡器提供了固定的1.0、2.0、4.0 或8.0
MHz 的时钟。这些频率都是5V、25°C 下的标称数值。这个时钟也可以作为系统时钟,只要按照表2
对熔丝位CKSEL进行编程即可。
表2. 片内标定的RC
振荡器工作模式

常见问题解答:xlIPS和其他的开发板有什么区别?有什么特别之处?
全国货到付款(托收)购买:
您只需要仔细填写下面的表单后电话通知我们,即可安排发货,货款交给快递公司即可!轻松零风险购物!
(省外货到付款业务需要另加20元每单手续费,货到付款业务支持的地区请看这里.....
|