新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > IAR AVR 中斷應用

        IAR AVR 中斷應用

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

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

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

        //中斷定義
        #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)
        {
        }

        如何把常數字符串定義在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變量,但實際上一般只能作為常量使用了.


        關鍵詞: IARAVR中斷應

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永定县| 胶南市| 土默特右旗| 涟水县| 崇文区| 万安县| 蒙自县| 麻阳| 五华县| 斗六市| 墨江| 曲周县| 鄂伦春自治旗| 京山县| 余干县| 当涂县| 吴江市| 静海县| 武胜县| 汕尾市| 舟山市| 绥芬河市| 含山县| 临潭县| 郴州市| 宁城县| 大渡口区| 正阳县| 特克斯县| 娄底市| 南投县| 惠州市| 黔东| 顺平县| 高安市| 潜江市| 天柱县| 明星| 大宁县| 桐庐县| 密山市|