新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機的中斷問答

        PIC單片機的中斷問答

        作者: 時間:2013-05-11 來源:網絡 收藏

        與51或者其他系列的單片機相比,的中斷機制有其特殊之處,針對我們一些初學者存在的一些問題和疑惑,我在此做一個個人總結,不當的地方,請站友們指正。

        先摘引三個對PIC中斷理解的回帖,然后我再對中斷活動的過程、應該注意的事項、及一個疑惑進行較詳細的總結和解釋。

        ---------------

        johnfrank:關于pic中斷有些不明白的地方

        借用大蝦的程序;

        ;********************中斷服務代碼

        btfssINTCON,T0IE;判斷是否為T0中斷

        gotoother_int

        btfssINTCON,T0IF;it’sthetimeofT0int

        gotoother_int

        bcfINTCON,T0IF;是T0中斷,清除中斷標志

        movlw0x10;微秒的高位字節加上定時時間256x16分頻=4096=0x1000的高位(0x10)

        addwfus+1

        gotoend_int

        other_int;可添加其他中斷服務代碼

        nop;otherisrcodecanbeadded

        ;**********************************

        end_int;恢復現場

        =================

        假如又有新的中斷正好在這段程序中間產生

        btfssINTCON,T0IF

        gotoother_int

        bcfINTCON,T0IF

        程序豈不是要出錯跑飛了

        johnfrank:

        謝謝你的關注。

        我講一下自己的理解,權做回答,不當之處,還請站友們指點。

        pic中檔單片機系列沒有“硬件中斷優先級別”(請允許我這樣說),含義是指:當內核正在處理當前的中斷服務A時,在這個期間里,其他任何中斷的產生,只能使其標志位xxIF置1,不能剝奪當前中斷服務對CPU的占用權(反應在PC指針不能被新的中斷改變指向),必須等到當前中斷服務處理A完畢,然后,根據gotoother_int語句的轉向,依次判斷。若新發生的中斷處理代碼在中斷服務A之后(前、后指代碼在ROM中地址順序,越大越后),則進行新發生的中斷處理;若恰好新發生的中斷服務代碼在剛被處理完畢的中斷服務A代碼之前,則將不予理會,(即程序指針PC不會在中斷處理代碼空間中又返回到0004H的入口),等到執行到retfie后返回主程序,然后再次進入中斷入口0004H...

        之所以說其無“硬件中斷優先級別”是與“軟件中斷優先級別”對應的,通過中斷服務代碼對中斷標志和IE的檢測的先后,可設立優先級。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 包头市| 韶关市| 蚌埠市| 英超| 虹口区| 安新县| 荔浦县| 鄂尔多斯市| 饶平县| 宣化县| 额尔古纳市| 县级市| 沁源县| 民县| 耒阳市| 沂南县| 自治县| 乐山市| 左贡县| 开平市| 凤凰县| 邓州市| 龙泉市| 岳普湖县| 社会| 越西县| 肇州县| 英超| 石棉县| 五常市| 平昌县| 朔州市| 博爱县| 延安市| 临沂市| 康定县| 屯门区| 保定市| 大余县| 南康市| 丹棱县|