因单片机中常有一些操控与延时相关,这些操作并不需要特别高的精度,为了少敲点字,故做了这个单片机软定时器,不足之处,欢迎纠正。
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