熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > VxWorks下的異步通用定時器設計

VxWorks下的異步通用定時器設計

作者: 時間:2009-12-15 來源:網絡 收藏

使用C++標準模板庫中的map實現對的存儲。第1個參數為的索引號,第2個參數為控制結構。使用map可以方便地實現基于定時器索引號的存儲管理和索引號的查找。使用map的定時器存儲示意圖如圖1所示。

本文引用地址:http://www.bjwjmy.cn/article/163412.htm


用戶在調用SetTimer函數時,創(chuàng)建一個初始狀態(tài)為空的計數信號量timerArrv,同時生成一個任務timerTask等待該信號量,此時任務狀態(tài)為PEND;實例化一個CClk-Generator對象,創(chuàng)建看門狗啟動定時器。當定時器超時時,釋放timerArrv信號量,解除阻塞在timerArrv上的任務,回調用戶函數完成一個完整的定時過程。定時器的典型運行過程如圖2所示。

圖2中最底下的虛線指向啟動看門狗后的中斷處理流程。中間部分表示定時器任務運行過程,可見用戶回調函數是運行在任務空間中。“回調函數釋放信號量”到定時器任務semTake”的虛線表示釋放信號量使任務解鎖。


4 定時器的應用
定時器管理控制模塊是用戶的唯一接口,使用Single-ton模式。只要調用CTimerCtrl::GetTimerCtrl()就可以完成對定時器的初始化,除對定時器進行相關操作之外,還包括通過sysClkRateSet函數設置系統時鐘每秒的tick數為1000。下面的例子包含2個定時器:一個是1 sN期性定時器;另一個是周期為5 s的一次性定時器。

結 語
從應用實例中可以看出,定時器的使用方法和Windows下的定時器沒有太大區(qū)別,接口簡單清晰。定時器可以應用于定時精度為ms的絕大部分應用程序中,對于精度要求高于ms的定時使用硬件輔助時鐘中斷更為合適,但是要注意操作系統對中斷處理函數的限制。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉