新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > VxWorks下基于看門狗的通用定時器設計

        VxWorks下基于看門狗的通用定時器設計

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

        2.3 定時器實現
        2.3.1 定時器軟件結構
        共享定時器軟件結構如圖2所示:

        本文引用地址:http://www.104case.com/article/148020.htm

        b.jpg


        CWatchDogTimer類完成了對的封裝,它由一些通用的函數來維護一個。其中Create()函數用來創建一個;Delete()用來刪除該定時器;Start()用來啟動定時任務;Cancel()用來暫停定時器工作,此時再使用Start()函數可以恢復定時器的運行。
        TimerInfo數據結構由tExe與tInterval兩個屬性構成,tExe記錄定時器的執行時間,tInterval表示定時器的時間間隔。
        TimerList用來維護多個TimerInfo結構的變量,每個 TiraerInfo變量記錄一個定時器參數信息。
        CEffieientTimer類完成對多個定時任務的管理,包括RegistTimer()函數實現注冊一個定時器;UnRegistTimer()用來注銷一個定時器;ClearTimerList()用來清空定時器列表中所有定時器任務;IsEmpty()用來判斷定時器列表是否為空。
        2.3.2 看門狗定時模塊實現
        看門狗定時模塊處理流程如圖3所示。

        c.jpg


        看門狗定時器模塊是共享定時器的基礎,它實現了單一定時器的建立、啟動、刪除、取消等功能。首先通過Create()函數建立一個看門狗定時器,同時設定定時器時延、定時次數等參數;然后通過Start()函數啟動定時器;看門狗程序判斷是否到達時間間隔,如果到達則開始執行ISR程序,如果沒有到達則繼續等待;當執行完ISR程序后,定時器將判斷當前執行次數是否到達執行總次數,如果是則結束該次定時任務,若不是程序將跳轉到重新啟動定時器后依次執行。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 尚志市| 安塞县| 太仆寺旗| 桂林市| 杭州市| 忻城县| 建平县| 溧阳市| 滕州市| 内黄县| 理塘县| 南涧| 肇源县| 孙吴县| 穆棱市| 方正县| 乐亭县| 中卫市| 五指山市| 汉中市| 崇义县| 石台县| 隆尧县| 怀安县| 陆良县| 浦县| 安泽县| 简阳市| 保康县| 克拉玛依市| 吴桥县| 博白县| 商南县| 汤阴县| 宁明县| 祥云县| 云南省| 元谋县| 塔城市| 阜平县| 普兰店市|