日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]因單片機(jī)中常有一些控制與延時(shí)關(guān)聯(lián),這些操作并不需要特別高的精度,為了少敲點(diǎn)字,故做了這個(gè)單片機(jī)軟定時(shí)器,不足之處,歡迎指正。timer.h#ifndef __SOFT_TIMER_H__#define __SOFT_TIMER_H__#define EVENT_TYPE_ON

因單片機(jī)中常有一些控制與延時(shí)關(guān)聯(lián),這些操作并不需要特別高的精度,為了少敲點(diǎn)字,故做了這個(gè)單片機(jī)軟定時(shí)器,不足之處,歡迎指正。

timer.h

#ifndef __SOFT_TIMER_H__

#define __SOFT_TIMER_H__


#define EVENT_TYPE_ONESHOT 0

#define EVENT_TYPE_PERIODIC 1


#define TMR_POOL_SIZE 20

#define HANDLE int


typedef void (*TimerProc)(void*);


void TimerInit(void);

//HANDLE : -1 means fail,

HANDLE SetTimer(unsigned long uElapse,TimerProc pFunc,void *para,unsigned int Tmr_type);

void KillTimer(HANDLE hTmr);

void TimerServer(void); // call in main loop

void TimerSignal(void); // call it in timer isr

unsigned long TmrGetTime(void);


#endif


timer.c

1#include"timer.h"23typedefstruct_tagTimer{4unsignedintelapse;5unsignedintinterval;6TimerProcpFunc;7void*para;8unsignedcharstate;9unsignedcharevent_type;10unsignedchartimeout;11}Timer_Typedef;1213#defineTMR_STATE_FREE014#defineTMR_STATE_RUNNING11516staticTimer_Typedef_timerArray[TMR_POOL_SIZE]={0};17staticunsigned_tmr_tick=0;1819voidTimerInit(void)20{2122}2324HANDLESetTimer(unsignedlonguElapse,TimerProcpFunc,void*para,unsignedintTmr_type)25{26inti,unused_slot=-1;27for(i=0;i=0)&&(hTmrtimeout)&&(pTmr->pFunc))64{65(*(pTmr->pFunc))(pTmr->para);66pTmr->timeout=0;67}68pTmr++;69}70}7172voidTimerSignal(void)73{74inti=0;75Timer_Typedef*pTmr=_timerArray;7677++_tmr_tick;78for(i=0;istate==TMR_STATE_RUNNING)81{82if(pTmr->elapse==_tmr_tick)83{84if(pTmr->event_type==EVENT_TYPE_PERIODIC)85{86pTmr->elapse+=pTmr->interval;87}88else89{90pTmr->state=TMR_STATE_FREE;//killtimer91}92pTmr->timeout=1;93}94}95pTmr++;96}97}9899unsignedlongTmrGetTime(void)100{101return_tmr_tick;102}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉