新闻动态
联系我们
欧普
电话:0769-87811966
传真:0769-87813682
邮箱:[email protected]
地址:广东省东莞市塘厦镇莆田路1号

新闻动态

您现在的位置: 首页 > 新闻动态>

IAR开发环境使用注意事项

时间:2023-04-08  |   来源:欧普
 

.h里面包含了读写16位的简化书写,和几个位操作函数 comp_a90.h对大量的内在函数做了简要书写 ina90.h包含"inavr.h""comp_A90.h"文件 intrinsics.h内在函数提供最简单的操作处理器底层特征。休眠,,FLASH函数。 iomacro.HI/O寄存器定义文件样本。 iom8.h包含I/O等寄存器定义 位操作 在里对位的操作如一般如下: PORTB|=(1dcharbit0: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 _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溢出中断入口地址 __interruptvoime0(void) { ; } 上面的入口地址写成#pragmavector=MER0_OVF_vect更直观,每种中断的入口地址在头文件里有描述。 中断指令 __disable_interrupt(); //也可以用_CLI();也可以SREG_Bit7=0; __enable_interrupt(); //也可以用_SEI();也可以SREG_Bit7=1; 控制指令 __no_operation(); //空操作指令 _NOP(); __sleep(); //休眠指令 _SLEEP(); __watchdog_reset(); //看门狗清零 _WDR(); 来源:畅学电子 审核编辑:何安
欧普

产品推荐