标题: 使用ICC AVR和AVR STUDIO的一些差别 [打印本页]

作者: 51黑小牛    时间: 2016-4-10 21:31
标题: 使用ICC AVR和AVR STUDIO的一些差别

列出ICC AVR 过渡到 AVR STUDIO时要注意的几个问题
1.头文件更改
ICCAVR使用的是“#include <iom16v.h>”
AVR STUDIO更改为“#include <avr/io.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>
ISR(SIG_OVERFLOW0)       //定时器/计数器0溢出中断(ICC AVR 过渡到 AVR STUDIO
4.一些库函数的不同
ICC                                        AVR studio
nop()                                    asm("nop")
WDR()                                 asm("wdr")
CLI()                                      cli()
SEI()                                      sei()




作者: 浅若清风    时间: 2016-5-11 12:51
楼主说得对,顶!d=====( ̄▽ ̄*)b file:///C:/Users/120/AppData/Local/Temp/SGPicFaceTpBq/4968/10087CD1.gif

作者: xshx    时间: 2016-5-13 15:09
学习学习
作者: xshx    时间: 2016-5-13 15:12
????????
作者: wanffee    时间: 2018-4-21 06:14
标记下了,两种软件来回倒时容易蒙,谢楼主
作者: 2003hjw    时间: 2018-7-28 21:00
值得学习,谢谢分享
作者: huaishang    时间: 2019-2-13 18:03
标记下了,两种软件来回倒时容易蒙,谢楼主
作者: donaldsu    时间: 2019-3-4 20:21
楼主总结的可以




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1