新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種高效定時(shí)器模塊的設(shè)計(jì)與實(shí)現(xiàn)

一種高效定時(shí)器模塊的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-03-25 來(lái)源:電子產(chǎn)品世界 收藏

  軟件定時(shí)器只有在有嘀嗒發(fā)生且自身狀態(tài)為RUNNING的情況下才會(huì)運(yùn)行,其計(jì)時(shí)時(shí)間-duration隨嘀嗒而累加,如果duration達(dá)到超時(shí)值,則置overow_ag,然后判斷該定時(shí)器是否周期定時(shí)器,是則重啟定時(shí)-清零duration,否則判斷是否多次定時(shí),定時(shí)次數(shù)計(jì)數(shù)未滿則重啟定時(shí),計(jì)數(shù)滿后停止該定時(shí)器。

本文引用地址:http://2s4d.com/article/118088.htm

  定時(shí)器應(yīng)用

  在軟件系統(tǒng)中是一個(gè)基本功能單元,它為其他模塊或上層應(yīng)用提供超時(shí)、計(jì)時(shí)服務(wù)[5]。以門鎖的驅(qū)動(dòng)為例講述下定時(shí)器的應(yīng)用。

  在門鎖閉鎖時(shí),BCM對(duì)門鎖電機(jī)的閉鎖驅(qū)動(dòng)控制需要保持200ms的時(shí)間,在邏輯上便是輸出一個(gè)200ms的控制脈沖,該部分代碼如下:

  ...

  DrivePort(ALLDR_LK_OUT,DRIVEON);

  TimerStart(ALLDR_LOCK_200MS,200,0,1);

  if(1==TM[ALLDR_LOCK_200MS].overow_ag)

  {

  DrivePort(ALLDR_LK_OUT,DRIVEOFF);

  TM[ALLDR_LOCK_200MS].overow_ag=0;

  }

  ...

  可見(jiàn),在設(shè)計(jì)良好的定時(shí)器驅(qū)動(dòng)以后,實(shí)現(xiàn)某種定時(shí)應(yīng)用非常簡(jiǎn)單,其他應(yīng)用示例在此不再贅述。

  結(jié)語(yǔ)

  本文設(shè)計(jì)的,邏輯清晰,使用方便,做為一個(gè)穩(wěn)定的底層驅(qū)動(dòng),在實(shí)際應(yīng)用中得到了很好的應(yīng)用。


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉