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

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

发布时间:2020-08-26 发布时间:
|

列出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()



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

热门文章 更多
51单片机中断源的扩展方法