新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台前县| 武义县| 唐山市| 台南市| 南城县| 乌什县| 库尔勒市| 南宁市| 商河县| 乐陵市| 翁牛特旗| 阳高县| 永年县| 微博| 石河子市| 屏边| 云梦县| 宝丰县| 玛多县| 罗山县| 同心县| 东丰县| 昭觉县| 卓资县| 万年县| 永靖县| 集安市| 正阳县| 甘谷县| 尤溪县| 湖北省| 田阳县| 四川省| 汉阴县| 治多县| 道孚县| 阳东县| 遂川县| 克东县| 广平县| 中宁县|