使用ICC AVR过渡到AVR STUDIO

本文总结了从ICCAVR开发环境迁移到AVRSTUDIO时需要注意的关键问题,包括头文件更改、延时函数使用、中断函数写法及库函数差异等。

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

1.头文件更改

ICCAVR使用的是“#include <iom16v.h>

AVR STUDIO更改为“#include <avr/io.h>
AVR Studio 4 的头文件 #include <avr/twi.h>”  对应 AVR Studio 5 的头文件 #include <compat/twi.h>” 

在ICC中使用不同MCU的头文件是不同的,在AVR studio中所有MCU的头文件都用“#include <avr/io.h>”

2.AVR studio中延时函数可直接使用“#include <util/delay.h>”头文件中的延时函数

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 <avr/interrupt.h>”头文件中断函数名不能自定义

如:

#include <avr/interrupt.h>

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

4.一些库函数的不同

ICC                                        AVR studio

nop()                                    asm("nop")

WDR()                                 asm("wdr")

CLI()                                      cli()

SEI()                                      sei()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值