新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機多中斷處理技術的應用與研究

        基于單片機多中斷處理技術的應用與研究

        作者: 時間:2013-02-17 來源:網絡 收藏

          2.2 程序設計

          (1)主程序

          主程序流程圖如圖3所示。

        圖3主程序流程圖

          (2)中斷程序

          中斷程序流程圖如圖4所示。

        圖4中斷子程序流程圖

          3 多中斷處理注意的問題

          1)要處理多路中斷問題,中斷處理程序的算法大體上可以分為兩類:弱中斷優先級(使用CALL和RETURN方式)和強中斷優先級(使用GOTO方式)。

          2)如果同時發生多個中斷請求,則中斷處理的順序取決于中斷程序中的檢查中斷源的順序。

          3)若要防止中斷請求被丟失,則要注意下面兩種情況:如果同一中斷源的中斷發生間隔時間小于該中斷服務的處理時間,則可能出現中斷事件被忽略(體現在中斷服務的過程中,標志位被連續發生了兩次置位),例如:中斷事件發生的時間間隔為30ms,中斷服務處理加上跳轉判斷的時間為50ms,則情況將會如下所示:

          [中斷次數______1][中斷次數______2][中斷次數_____3][中斷次數_____4]

          [處理次數______1][處理次數______2][處理次數_____4]

          如果在中斷處理一開始就清除IF,那么如上圖所示,中斷事件3、4在處理次數2的過程中發生了兩次,那么即使IF清除發生在中斷次數3發生之前,也將丟失第三次中斷。

          另外,即使中斷出現的時間間隔大于中斷服務的時間間隔,如果清除中斷標志位的指令安排在中斷服務子程序的尾部,就有可能造成丟失該中斷請求(即兩次中斷標志置位的事件只對應一條清除指令和一次中斷處理),也就是如果清除中斷標志位的指令安排在中斷服務程序的尾部,就有可能丟失響應在處理中斷期間該中斷源第2次中斷請求的機會。

          4)為了能夠編寫好一個簡潔的中斷程序,應抓住中斷的特點是具有實時性,針對實時中斷數據采集系統,也就是中斷的特點在于數據的采集。因此在中斷程序中只應該處理數據采集和標志位的設置,而將數據的處理放在中斷之外,由主程序通過循環檢測執行數據處理工作,具體做法:先開辟一個“儲存緩沖區”,作為采集來的數據的傳遞媒體,即存儲采集數據,等待主程序的處理;中斷程序負責數據的采集,并且將采集來的數據值賦給“存儲緩沖區”;主程序通過條件循環語句反復檢測“存儲緩沖區”情況,及時處理采集信息。這樣在處理方法既能有效的實現中斷的功能,又可以極大的縮減每個中斷的時間,提高整個程序的反應速度。

          5)對于中斷響應和處理時間有嚴格要求的應用,保護現場的指令安排也應考慮延時問題。

          6)在進行查表操作時必須禁止CPU響應中斷。以避免中斷返回時跳轉到不希望的地址上去。

          4 結束語

          靈活地應用中斷,不但可以大量的節省CPU資源,而且能夠使程序更加簡化.具有更高的實時性和穩定性。經過測試,這種具有測量準確度高、使用方便、穩定可靠的優點,可應用于計量測試領域。同時由于使用軟件控制,電路結構簡單,使用硬件少,使得成本低廉且攜帶方便,因此也可廣泛應用于工農業生產和居民生活中,具有推廣價值。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 九龙县| 佛坪县| 邳州市| 叙永县| 赤水市| 本溪市| 虹口区| 南通市| 漠河县| 松江区| 修武县| 封开县| 修文县| 县级市| 石泉县| 延边| 东阳市| 田林县| 荥阳市| 新密市| 巴林左旗| 迁西县| 娱乐| 玉林市| 九江县| 临汾市| 凌云县| 金山区| 丹凤县| 盐城市| 犍为县| 金秀| 定远县| 宁远县| 宝兴县| 喀喇| 阿荣旗| 诏安县| 凤冈县| 牟定县| 云龙县|