新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > IAR AVR 中斷應(yīng)用

IAR AVR 中斷應(yīng)用

作者: 時間:2016-12-03 來源:網(wǎng)絡(luò) 收藏
如何輸出HEX文件?
在配置文件后面加入以下代碼,便可輸出HEX文件,A90文件與HEX文件一樣,SLISP都能識別.

// Output File
-Ointel-extended,(XDATA)=.eep //產(chǎn)生eeprom文件
-Ointel-extended,(CODE)=.A90 //產(chǎn)生燒寫文件
-Ointel-extended,(CODE)=.hex //產(chǎn)生燒寫文件

中斷向量的使用
IAR中定義中斷函數(shù)的格式是
/////////////////////////////////
#pragma vector=中斷向量
__interrupt void 中斷服務(wù)程序(void)
{
//中斷處理程序
}
/////////////////////////////////////
中斷的初始化要另外加入代碼,可在主程序內(nèi)加入。如下是各個中斷函數(shù)的定義。

//中斷定義
#include

#pragma vector=INT0_vect
__interrupt void INT0_Server(void)
{
}
#pragma vector=INT1_vect
__interrupt void INT1_Server(void)
{
}
#pragma vector=TIMER2_COMP_vect
__interrupt void TIMER2_COMP_Server(void)
{
}
#pragma vector=TIMER2_OVF_vect
__interrupt void TIMER2_OVF_Server(void)
{
}
#pragma vector=TIMER1_CAPT_vect
__interrupt void TIMER1_CAPT_Server(void)
{
}
#pragma vector=TIMER1_COMPA_vect
__interrupt void TIMER1_COMPA_Server(void)
{
}
#pragma vector=TIMER1_COMPB_vect
__interrupt void TIMER1_COMPB_Server(void)
{
}
#pragma vector=TIMER1_OVF_vect
__interrupt void TIMER1_OVF_Server(void)
{
}
#pragma vector=TIMER0_OVF_vect
__interrupt void TIMER0_OVF_Server(void)
{
}
#pragma vector=SPI_STC_vect
__interrupt void SPI_STC_Server(void)
{
}
#pragma vector=USART_RXC_vect
__interrupt void USART_RXC_Server(void)
{
}
#pragma vector=USART_UDRE_vect
__interrupt void USART_UDRE_Server(void)
{
}
#pragma vector=USART_TXC_vect
__interrupt void USART_TXC_Server(void)
{
}
#pragma vector=ADC_vect
__interrupt void ADC_Server(void)
{
}
#pragma vector=EE_RDY_vect
__interrupt void EE_RDY_Server(void)
{
}
#pragma vector=ANA_COMP_vect
__interrupt void ANA_COMP_Server(void)
{
}
#pragma vector=TWI_vect
__interrupt void TWI_Server(void)
{
}
#pragma vector=INT2_vect
__interrupt void INT2_Server(void)
{
}
#pragma vector=TIMER0_COMP_vect
__interrupt void TIMER0_COMP_Server(void)
{
}
#pragma vector=SPM_RDY_vect
__interrupt void SPM_RDY_Server(void)
{
}

如何把常數(shù)字符串定義在flash 空間?
法一:unsigned char __flash temptab[] = {1,2,3,4,5};
法二:__flash unsigned char temptab[] = {1,2,3,4,5};
法三:#pragma type_attribute=__flash
unsigned char temptab[]={1,2,3,4,5};

法四:const unsigned char temptab[]={1,2,3,4,5};

注:第三種方式用#pragma說明后,下面的定義的變量將都在FLASH空間了,用于定義一批FLASH變量,但實際上一般只能作為常量使用了.


關(guān)鍵詞: IARAVR中斷應(yīng)

評論


技術(shù)專區(qū)

關(guān)閉