在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430 單片機(jī)C語言和匯編語言混合編程

            MSP430 單片機(jī)C語言和匯編語言混合編程

            作者: 時(shí)間:2012-03-19 來源:網(wǎng)絡(luò) 收藏

            4.1.2 源程序
            ; ******************************************************************
            ; 文件名: asm_source.s43
            ; C源程序
            ; 這段源程序調(diào)用兩個(gè)C語言函數(shù),標(biāo)準(zhǔn)庫函數(shù)rand()和用戶自定義函數(shù)mult()
            ; *******************************************************************
            #include msp430x14x.h ; 頭文件
            NAME asmfile

            EXTERN rand ; C語言標(biāo)準(zhǔn)庫函數(shù)rand()
            EXTERN mult ; c_source.c中用戶自定義函數(shù)

            ;====================================================================
            ; get_rand
            ;====================================================================
            PUBLIC get_rand ; 導(dǎo)出函數(shù)名給C語言函數(shù)
            RSEG CODE
            get_rand;
            push R11 ; 普通寄存器入棧保護(hù)
            mov.b R12,R11 ; C 函數(shù)傳遞的實(shí)參在R12中,送入R16暫存

            Call #rand ; 調(diào)用 C 函數(shù) rand()
            ; 函數(shù)值為整型返回在R12中

            ; rand()函數(shù)值作為mult()函數(shù)的第一實(shí)參
            ; 送入R12進(jìn)行參數(shù)傳遞
            mov R11,R14 ; C 函數(shù)傳遞的實(shí)參作為mult()函數(shù)的第二實(shí)參
            ; 送入R14進(jìn)行參數(shù)傳遞
            Call #mult ; mult()值返回在 R12 / R13寄存器對(duì)
            pop R11 ; 出棧恢復(fù)寄存器內(nèi)容
            ret
            END

            4.2 匯編語言編寫中斷服務(wù)程序

            為了提高整個(gè)系統(tǒng)響應(yīng)速度,要求中斷服務(wù)程序的執(zhí)行時(shí)間較短,執(zhí)行速度較快,因此最好的方法就是用匯編語言編寫中斷服務(wù)程序。但要注意:1、中斷服務(wù)程序不能有參數(shù)傳遞和返回值。2、中斷服務(wù)程序中所有被用到的寄存器都需要保護(hù)。本示例用匯編語言編寫了看門狗定時(shí)器的中斷服務(wù)程序,用C語言編寫了主程序。

            4.2.1 C語言主程序
            /********************************************************************/
            /* 文件名:c_main.c 2003-01-08 */
            /* C語言和匯編語言,C源程序 */
            /* 這段源程序被看門狗定時(shí)器中斷后執(zhí)行匯編語言函數(shù)編寫的中斷服務(wù)程序 */
            /* 注意工程必需包含匯編語言源文件 wdt_int.s43 */
            /********************************************************************/
            #include x14x.h> /* 頭文件 */
            /********************************************************************/
            /*主函數(shù) */
            /********************************************************************/
            void main( void )
            {
            // === 系統(tǒng)初始化 =============================================
            IFG1=0; /* 清除中斷標(biāo)志1 */
            WDTCTL=WDT_MDLY_32; /* 看門狗的定時(shí)間隔為 32ms */
            P1DIR = 0x01; /* P1.0 設(shè)置為輸出 */
            IFG1 = ~WDTIFG; /* 清除已掛起的看門狗定時(shí)器中斷 */
            IE1 |= WDTIE; /* 允許看門狗定時(shí)器中斷 */
            _EINT();
            // === 系統(tǒng)初始化結(jié)束===========================================
            while(1); /*主程序是一段死循環(huán)
            }
            // === 主函數(shù)結(jié)束 ==============================================

            c語言相關(guān)文章:c語言教程




            評(píng)論


            相關(guān)推薦

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

            關(guān)閉