yincheng.zhong
10 天以前 d10f581eb749a8338e697a418d630db2cb01843f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _HIDO_TIMER_H_
#define _HIDO_TIMER_H_
#include "HIDO_TypeDef.h"
 
typedef HIDO_VOID (*HIDO_TimerFunc)(HIDO_VOID *);
 
typedef struct HIDO_TimerStruct
{
    HIDO_UINT32 m_u32State;
    HIDO_UINT8 m_u8Type;
    HIDO_CHAR *m_pcName;
    HIDO_UINT32 m_u32Tick;
    HIDO_UINT32 m_u32TickBack;
    HIDO_VOID *m_pPrivateData;
    HIDO_TimerFunc m_fnTimerProc;
} HIDO_TimerStruct;
 
#define HIDO_TIMER_TICK_S(s) ((s) * 1000)
#define HIDO_TIMER_TICK_MS(ms) ((ms))
#define HIDO_TIMER_TYPE_ONCE 0
#define HIDO_TIMER_TYPE_LOOP 1
 
#define HIDO_TIMER_ID_MAX_CNT 32
 
HIDO_INT32 HIDO_TimerCreate(HIDO_UINT32 *_pu32TimerID);
HIDO_INT32 HIDO_TimerDestroy(HIDO_UINT32 _u32TimerID);
HIDO_INT32 HIDO_TimerStart(HIDO_UINT32 _u32TimerID, HIDO_UINT8 _u8Type, HIDO_UINT32 _u32Tick, HIDO_TimerFunc _fnTimerProc, void *_pPrivateData);
HIDO_INT32 HIDO_TimerCancel(HIDO_UINT32 _u32TimerID);
void HIDO_TimerPoll(void);
HIDO_VOID HIDO_TimerPollByID(HIDO_UINT32 _u32TimerID);
void HIDO_TimerTick(void);
HIDO_UINT32 HIDO_TimerGetTick(void);
HIDO_UINT64 HIDO_TimerGetTick64(void);
HIDO_VOID HIDO_TimerSetTick64(HIDO_UINT64 _u64Tick);
HIDO_UINT32 HIDO_TimerGetNearestTimeout(HIDO_UINT32 _u32DefaultMs);
 
#endif /* _HIDO_TIMER_H_ */