0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IAR开发环境使用注意事项

电子设计 来源:电子设计 作者:电子设计 2022-02-18 10:50 次阅读

头文件含义

avr_macros.h里面包含了读写16位寄存器的简化书写,和几个位操作函数

comp_a90.h对大量的内在函数做了简要书写

ina90.h包含"inavr.h""comp_A90.h"文件

intrinsics.h内在函数提供最简单的操作处理器底层特征。休眠,看门狗,FLASH函数。

iomacro.HI/O寄存器定义文件样本。

iom8.h包含I/O等寄存器定义

位操作

c语言里对位的操作如一般如下:

PORTB|=(1<<2); //置PORTB的第2位=1

PORTB&=~(1<<2); //置PORTB的第2位=0

PORTB^|=(1<<2); //取反PORTB的第2位

While(PORTB&(1<<2)); //判断1

While(!(PORTB&(1<<2))); //判断为0

IAR编译器对位的支持更强大,除了上面的方法外还有以下更简单的操作方法:

PORTB_Bit2=1;//置PORTB的第2位=1

PORTB_Bit2=0;//置PORTB的第2位=0

PORTB_Bit2=~PORTB_Bit2;//取反PORTB的第2位

While(PORTB_Bit2);或者while(PORTB_Bit2==1);//判断1

while(PORTB_Bit2==0);//判断0

PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位传送到PORTC的第4位

位变量定义:

由于iar使用了扩展语言,它对位域的支持变为最小为char类型,我们可以很方便地用来定义位变量。

采用结构体来定义位变量:

struct

{

unsignedcharbit0:1;

unsignedcharbit1:1;

unsignedcharbit2:1;

unsignedcharbit3:1;

unsignedcharbit4:1;

unsignedcharbit5:1;

unsignedcharbit6:1;

unsignedcharbit7:1;

}t;

然后就可以用以下位变量

t.bit0=1;

t.bit0=~t.bit0;

但是采用以上结构体做出来的位变量只可以访问t的位,不能够直接访问变量t,和标准的IAR位操作也不一样,可以采用联合体来定义。

#include

union

{

unsignedchart;

struct

{unsignedchart_bit0:1,

t_bit1:1,

t_bit2:1,

t_bit3:1,

t_bit4:1,

t_bit5:1,

t_bit6:1,

t_bit7:1;

};

};

voidmain(void)

{

t_bit0=1;//访问变量t的位

t_bit0=~t_bit0;

PORTB=t;//直接访问变量t

}

延时函数

__delay_cycles(unsignedlong);

如果处理器频率为1M,延时100us,如下:

__delay_cycles(100);

延时任意时间

#define CPU_F 8000000

#define delay_us(x) __delay_cycles(CPU_F*x/1000000)

#define delay_ms(x) __delay_cycles(CPU_F*x/1000)

中断函数:

在IAR编译器里用关键字来__interrupt来定义一个中断函数,用#pragmavector来提供中断函数的入口地址

#pragmavector=0x12 //定时器0溢出中断入口地址

__interruptvoidtime0(void)

{

;

}

上面的入口地址写成#pragmavector=TIMER0_OVF_vect更直观,每种中断的入口地址在头文件里有描述。

中断指令

__disable_interrupt(); //也可以用_CLI();也可以SREG_Bit7=0;

__enable_interrupt(); //也可以用_SEI();也可以SREG_Bit7=1;

MCU控制指令

__no_operation(); //空操作指令

_NOP();

__sleep(); //休眠指令

_SLEEP();

__watchdog_reset(); //看门狗清零

_WDR();

来源:畅学电子
审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AVR单片机
    +关注

    关注

    22

    文章

    583

    浏览量

    54653
  • IAR
    IAR
    +关注

    关注

    4

    文章

    288

    浏览量

    36095
收藏 人收藏

    评论

    相关推荐

    ucosii开发注意事项

    开发注意事项
    发表于 08-15 22:37

    第34章 使用FreeRTOS时注意事项总结

    注意这些问题。34.1.1MDK和IAR版本问题IDE:支持两种IDE开发环境,MDK和IAR(1)用MDK4.7X或者MDK5.XX均可
    发表于 09-19 07:52

    硬件开发流程及注意事项是什么

    开发流程及注意事项是什么
    发表于 04-27 06:15

    Simulink开发STM32环境配置注意事项

    开发STM32环境配置注意事项,自动生成代码无法正常实现功能分析最近做PIL,记录一些过程,备忘1.环境配置的注意事项需要的软件包括MATLAB ,我
    发表于 08-17 06:07

    Simulink开发STM32环境配置的注意事项都有哪些呢

    开发STM32环境配置的注意事项都有哪些呢?为什么软件没有生成正确代码呢?
    发表于 11-19 07:48

    MSP430单片机的安装方法以及注意事项

    IAR for mps430安装IAR5.1版本开发MSP430单片机,安装方法以及
    发表于 11-29 07:46

    Arduino IDE环境配置及其注意事项

    环境配置三、测试效果四、
    发表于 12-09 07:05

    胆机使用的注意事项

    注意事项:胆机使用的注意事项 我是初哥, 现在对胆机感兴趣, 但听说胆机使用麻烦, 请问有什么需要
    发表于 11-29 17:09 46次下载

    MSP430开发环境配置

    IAR for mps430安装IAR5.1版本开发MSP430单片机,安装方法以及
    发表于 11-19 20:06 12次下载
    MSP430<b>开发</b><b>环境</b>配置

    针对恶劣工业环境选择以太网的三大注意事项

    环境选择以太网的三大
    发表于 10-31 08:23 0次下载
    针对恶劣工业<b>环境</b>选择以太网的三大<b>注意事项</b>

    使用注意事项

    发表于 03-17 20:14 0次下载
    使用<b>注意事项</b>

    FM33LC0XX开发注意事项

    开发注意事项.pdf》资料免费下载
    发表于 09-20 09:59 0次下载
    FM33LC0XX<b>开发</b><b>注意事项</b>

    晶振使用环境温度及使用注意事项

    环境温度以及使用注意事项
    的头像 发表于 10-01 16:34 5043次阅读

    COB光源的使用注意事项

    的头像 发表于 12-13 15:45 789次阅读