列出ICCAVR過(guò)渡到AVRSTUDIO時(shí)要注意的幾個(gè)問(wèn)題1.頭文件更改
本文引用地址:http://cafeforensic.com/article/201611/317461.htmICCAVR使用的是“#include”
AVRSTUDIO更改為“#include<avr/io.h>”
在ICC中使用不同MCU的頭文件是不同的,在AVRstudio中所有MCU的頭文件都用“#include”
2.AVRstudio中延時(shí)函數(shù)可直接使用“#include”頭文件中的延時(shí)函數(shù):
void_delay_us(double__us);
void_delay_ms(double__ms);
兩個(gè)函數(shù)的參數(shù)均為double型的,通常使用整數(shù)延時(shí)即可。
(函數(shù)最大延時(shí)時(shí)間是有限制的,參考“util/delay.h”)
3.中斷函數(shù)寫(xiě)法不同
在ICC中斷函數(shù)名可以自定義
列出ATmega16的向量表:
#defineIT_RESET1
#defineIT_INT02
#defineIT_INT13
#defineIT_TIMER2_COMP4
#defineIT_TIMER2_OVF5
#defineIT_TIMER1_CAPT6
#defineIT_TIMER1_COMPA7
#defineIT_TIMER1_COMPB8
#defineIT_TIMER1_OVF9
#defineIT_TIMER0_OVF10
#defineIT_SPI_STC11
#defineIT_USART_RXC12
#defineIT_USART_UDRE13
#defineIT_USART_TXC14
#defineIT_ADC15
#defineIT_EE_RDY16
#defineIT_ANA_COMP17
#defineIT_TWI18
#defineIT_INT219
#defineIT_TIMER0_COMP20
#defineIT_SPM_RDY21
#pragmainterrupt_handleruser_fuc:Interruptvectornumber
如:
#pragmainterrupt_handlerTime2:iv_TIMER2_COMP
voidTime2()
{
}
AVRstudio中需添加“#include”頭文件且中斷函數(shù)名不能自定義
如:
#include
ISR(SIG_OVERFLOW0)//定時(shí)器/計(jì)數(shù)器0溢出中斷(ICCAVR過(guò)渡到AVRSTUDIO
4.一些庫(kù)函數(shù)的不同
ICCAVRstudio
nop()asm("nop")
WDR()asm("wdr")
CLI()cli()
SEI()sei()
評(píng)論