×
单片机 > 单片机程序设计 > 详情

WinAVR(GCC)快速入门

发布时间:2020-09-01 发布时间:
|
导读:开发avr单片机,我们以avr 8515芯片为例子,来介绍它的使用方法,希望对感兴趣的朋友有所帮助。 

WinAVR 的配置与 makefile 一直是新手入门的两个难点。我们经过详细的测试,推荐大家不需要作任何的配置,并且介绍了如何用最简单的方法创建自己的 makefile 文件。利用本文,十来分钟你就能入门 WinAVR /GCC.  

首先:下载安装WinAVR-20050214.exe软件安装好后(现在查阅最新的版本是07年的,即2007xxxx),你就能在电脑上看到如下的功能菜单:

 

说明如下:

名称

说明

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可改变流水灯方向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 (否则程序有问题请检查)

烧写程序/演示
用下载线连接好目标板上的ATmega8515L或Atmega8515,开启电源 ,  运行下载软件,如小马或者XLISP软件, XLISP软件中选择相应的芯片型号,器件配置选项中按 图6 设置

按照上图选择: 单片机工作在内部时钟8MHZ

注意:熔丝位配置错误将会锁死芯片导致再编程失败。

加载编译的文件main.hex   烧写程序,正常即可观查到流水灯效果!

特别注意!由于51单片机和AVR单片机的复位信号相反,而XL600/XL1000主要设计为51单片机使用,为此, 如果按XL600/XL1000的复位键后,则停止运行, 按下不动,才重新运行。初学者请注意!另外由于软件设计的原因可能要点两次智能一键通, 才能正常的下载。

附表: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 振荡器工作模式

 

 


关键字:WinAVR  GCC  快速入门

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2