南京芯科利电子科技有限公司

服务热线:17749591789    

单片机

使用ICC AVR和AVR STUDIO的一些差别

分类:单片机 发布:2019-03-20 10:47:17 浏览:599次 Tag:

列出ICC AVR 过渡到 AVR STUDIO时要注意的几个问题


1.头文件更改


ICCAVR使用的是“#include


AVR STUDIO更改为“#include


在ICC中使用不同MCU的头文件是不同的,在AVR studio中所有MCU的头文件都用“#include


2.AVR studio中延时函数可直接使用“#include ”头文件中的延时函数:


void _delay_us (double __us);


void _delay_ms(double __ms);


两个函数的参数均为double型的,通常使用整数延时即可。


(函数最大延时时间是有限制的,参考“util/delay.h”)


3.中断函数写法不同


在ICC 中断函数名可以自定义


列出ATmega16的向量表:



#define IT_RESET        1

#define IT_INT0         2

#define IT_INT1         3

#define IT_TIMER2_COMP 4

#define IT_TIMER2_OVF   5

#define IT_TIMER1_CAPT 6

#define IT_TIMER1_COMPA 7

#define IT_TIMER1_COMPB 8

#define IT_TIMER1_OVF   9

#define IT_TIMER0_OVF   10

#define IT_SPI_STC      11

#define IT_USART_RXC    12

#define IT_USART_UDRE   13

#define IT_USART_TXC    14

#define IT_ADC          15

#define IT_EE_RDY       16

#define IT_ANA_COMP     17

#define IT_TWI          18

#define IT_INT2         19

#define IT_TIMER0_COMP 20

#define IT_SPM_RDY      21


#pragma interrupt_handler user_fuc:Interrupt vector number


如:


#pragma interrupt_handler Time2:iv_TIMER2_COMP


void Time2()


{


}


AVR studio中需添加“#include ”头文件且中断函数名不能自定义


如:


#include


ISR(SIG_OVERFLOW0)       //定时器/计数器0溢出中断(ICC AVR 过渡到 AVR STUDIO


4.一些库函数的不同


ICC                                        AVR studio


nop()                                    asm("nop")


WDR()                                 asm("wdr")


CLI()                                      cli()


SEI()                                      sei()


相关文章
QQ在线咨询
销售电话:
17749591789
17749591789
512383826
扫码添加微信