新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)的中斷問答

        PIC單片機(jī)的中斷問答

        作者: 時間:2013-05-11 來源:網(wǎng)絡(luò) 收藏

        與51或者其他系列的單片機(jī)相比,的中斷機(jī)制有其特殊之處,針對我們一些初學(xué)者存在的一些問題和疑惑,我在此做一個個人總結(jié),不當(dāng)?shù)牡胤剑堈居褌冎刚?/P>

        先摘引三個對PIC中斷理解的回帖,然后我再對中斷活動的過程、應(yīng)該注意的事項(xiàng)、及一個疑惑進(jìn)行較詳細(xì)的總結(jié)和解釋。

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

        johnfrank:關(guān)于pic中斷有些不明白的地方

        借用大蝦的程序;

        ;********************中斷服務(wù)代碼

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

        gotoother_int

        btfssINTCON,T0IF;it’sthetimeofT0int

        gotoother_int

        bcfINTCON,T0IF;是T0中斷,清除中斷標(biāo)志

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

        addwfus+1

        gotoend_int

        other_int;可添加其他中斷服務(wù)代碼

        nop;otherisrcodecanbeadded

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

        end_int;恢復(fù)現(xiàn)場

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

        假如又有新的中斷正好在這段程序中間產(chǎn)生

        btfssINTCON,T0IF

        gotoother_int

        bcfINTCON,T0IF

        程序豈不是要出錯跑飛了

        johnfrank:

        謝謝你的關(guān)注。

        我講一下自己的理解,權(quán)做回答,不當(dāng)之處,還請站友們指點(diǎn)。

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

        之所以說其無“硬件中斷優(yōu)先級別”是與“軟件中斷優(yōu)先級別”對應(yīng)的,通過中斷服務(wù)代碼對中斷標(biāo)志和IE的檢測的先后,可設(shè)立優(yōu)先級。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 越西县| 益阳市| 辽宁省| 呼和浩特市| 汉源县| 黄浦区| 富川| 丽江市| 汉沽区| 伊春市| 莲花县| 孝感市| 射洪县| 民勤县| 酉阳| 克拉玛依市| 监利县| 安化县| 霞浦县| 余江县| 明水县| 中宁县| 贵州省| 古田县| 德令哈市| 山阳县| 社旗县| 敦化市| 安丘市| 芮城县| 宜良县| 政和县| 三穗县| 农安县| 梅州市| 万山特区| 邯郸县| 东阿县| 德保县| 大方县| 万州区|