AVR技术william hill官网
直播中

217810

13年用户 184经验值
擅长:可编程逻辑 模拟技术 RF/无线
私信 关注
[AVR资料]

IAR使用总结

本帖最后由 3010203109 于 2013-3-31 14:27 编辑

1、IAR与Dragon连不上
先看驱动,插上DRAGON,打开设备管理器,如果其中有AVR DRAGON,说明已经有驱动了,如果没有,右键“更新驱动程序软件”,选择“浏览计算机以查找驱动程序软件”,选择IAR安装目录下的driversdragon,如C:Program FilesIAR SystemsEmbedded Workbench 5.4avrdriversdragon,确定,安装。

装好驱动后,还要设置一下IAR。鼠标右击一个工程,选择OPtiONS,在General Options中选择单片机类型,OK。接下来是重点。 进入Debugger,在Drivers中有许多仿真器可选,注意不要选Dragon,选择JTAGICE mkII,OK。进入JTAGICE mkII>Extra Options,把钩选上,在下面的框中输入“--drv_dragon”(不含引号),OK。

接下来在菜单栏Dragon中选中Fuse Handler,如果能读出熔丝位,恭喜,你的Dragon已经和IAR连上了。


2、如何延时

传统的延时函数

void delay(long t)

{while(t--);}

在IAR中会被优化掉而无法实现延时,但是IAR为我们提供了另一种延时方法

延时头文件定义如下:

#ifndef __IAR_DELAY_H
#define __IAR_DELAY_H
#include
#define F_CPU 11.059200//晶振频率,单位:MHZ。此语句最好定义在c文件开头
#define   delay_us(x)   __delay_cycles ((unsigned long)(x * F_CPU))
#define   delay_ms(x)   __delay_cycles ((unsigned long)(x * F_CPU*1000UL))
#define   delay_s(x)    __delay_cycles ((unsigned long)(x * F_CPU*1000000UL))
#endif

把delay.h文件放入工程文件夹下,c文件开头声明#include"delay.h"

接下来就可以在C文件中直接使用us,ms,s级的延时了。如,延时100ms,就写“delay_ms(100);”,OK。

用这种方式延时应该是相当精确的,我曾用这个延时函数模拟UART通信,成功地实现了通信。


3、如何按位操作

从51转到AVR的人很快会遇到一个烦恼,AVR似乎不能进行位操作了!不用急,来看IAR怎么进行位操作。

对PA0的位操作可以这样写:

PORTA_Bit0=1;

PORTA_Bit0=~PORTA_Bit0 ;

也可以先#define PA0 PORTA_Bit0,就可以写成:

PA0=1;

PA0=~PA0;

暂时这些,以后再有值得分享的总结我会发表在帖子后面的回复中

回帖(29)

周小星

2013-3-31 14:20:54
dddddddddddddddddddddd
举报

217810

2013-3-31 14:22:14
5、包含宏的位定义
看下面程序:
uint8_t usart1_getchar(void)
{
        // Wait for incomming data
        while (!(UCSR1A & (1 << RXC1)));
        // Return the read data
        return UDR1;
}
编译报错是因为RXC1未定义,进入Options>General Options>System,勾选Enable bit definitions in I/O-Include files就行了

举报

217810

2013-3-31 14:23:35
6、IAR仿真运行不稳定
根据我使用IAR的经验,发现IAR仿真运行时容易出问题,有时甚至烧片子。大家有知道原因的请指教。我的解决办法是不用仿真,直接ISP下载程序。由于IAR不支持ISP,我是用AVR Studio来下载的。
举报

pltczw666

2013-4-1 14:17:40
第2点是个不错的经验。很好的分享!
举报

贱贱的梦想

2013-7-29 12:10:30
                           
举报

小浩神倾城

2013-12-19 11:16:19
学习一下啊!谢谢!!!
举报

964826861

2014-4-2 23:27:12
谢谢楼主分享啊
举报

赵先生

2017-3-24 17:03:12
这个帖子还不错,有学习借鉴意义,点赞
举报

huiyazhao

2017-11-8 12:00:07
学习了。。。。。。
举报

czhenter

2018-1-28 22:00:02
不错,谢谢分享!!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分