新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種高效定時器模塊的設計與實現

        一種高效定時器模塊的設計與實現

        作者: 時間:2011-03-25 來源:電子產品世界 收藏

          typedef enum{

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

          FEEDWATCHDOG_300MS,

          INPUT_DETECT_MS,

          LIN_TIMESLOT_MS,

          SPEED_PULSE_ACCUMU_200MS,

          ALLDR_LOCK_200MS,

          ALARM_30S,

          IGNITION_OFF_60S,

          ...

          ...

          MAX_TIMER_NUM

          }TimerId;

          這樣,定義數組Timer TIMER[MAX_TIMER_NUM],在初始化中,TIMER [i].timer_id=i;之后通過TIMER[timer_id]即可枚舉某軟件定時器節點。

          定時器管理

          定時器管理包括啟動、運行、停止、重啟和讀取計時時間等功能[4],相應API函數定義如下:

          void TimerStart(TimerId timer_id,ulong timeout,Bool cycle,uchar cnt_times);

          void TimerReStart(TimerId timer_id);

          void TimerTick(void);

          void TimerStop(TimerId timer_id);

          void TimerStall(TimerId timer_id);

          ulong TimerGet(TimerId timer_id);

          啟動定時器函數如下:

          #dene RTIPERIOD 2

          void TimerStart(TimerId timer_id,ulong timeout,Bool cycle,uchar cnt_times)

          {

          TIMER[timer_id].timer_state=RUNNING;

          TIMER[timer_id].duration=0;

          TIMER[timer_id].timeout=timeout/RTIPERIOD;

          TIMER[timer_id].cycle=cycle;

          TIMER[timer_id].cnt_times=cnt_times;

          TIMER[timer_id].timer_id=timer_id;

          }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宾川县| 越西县| 威宁| 常州市| 朝阳区| 奎屯市| 武山县| 垫江县| 垣曲县| 五华县| 广东省| 清镇市| 通辽市| 镇赉县| 呼玛县| 霍山县| 门头沟区| 龙胜| 高陵县| 平武县| 常德市| 芜湖县| 台南县| 新密市| 兰州市| 郑州市| 阿合奇县| 平顶山市| 通州市| 仁化县| 阿瓦提县| 资中县| 长白| 大宁县| 西峡县| 治县。| 什邡市| 揭东县| 郴州市| 沂水县| 增城市|