timer.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:1k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __TIMER_H
  2. #define __TIMER_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include "gendef.h"
  7. #define KB_TIMER_INVALID_ID (0xFFFFFFFF)
  8. typedef void (*KB_TIMER_FUNC_POINTER)(void*);
  9. typedef enum
  10. {
  11.     KB_TIMER_REPEAT = 0,
  12.     KB_TIMER_ONCE,
  13.     KB_TIMER_MAX
  14. }KB_TimerMode;
  15. #define TIMER_TICK_INT_PERIOD (100)
  16. #ifdef ST_OS21
  17. #define TIMER_STACK_SIZE   (1024 * 16)
  18. #else
  19. #define TIMER_STACK_SIZE   (1024 * 2)
  20. #endif
  21. #define CHECK_TIMER_ID(n) 
  22. if((n) == KB_TIMER_INVALID_ID) 
  23. return RETFAIL3
  24. typedef enum
  25. {
  26.     TIMER_FINISH_NORMAL = 0,
  27.     TIMER_FINISH_ENABLE,
  28.     TIMER_FINISH_DISABLE,
  29.     TIMER_FINISH_DELETE
  30. }TIMR_FINISH_t;
  31. typedef struct TIMER_STRUCT T_TIMER_st;
  32. struct TIMER_STRUCT
  33. {
  34.     UINT32 current_count;
  35.     UINT32  initial_ms;
  36.     T_TIMER_st  *next;
  37.     T_TIMER_st  *prev;
  38.     KB_TimerMode mode;
  39.     KB_TIMER_FUNC_POINTER entry;
  40. void *param; /* the parameter of entry */
  41.     UINT8  valid;
  42.     UINT8  enabled;
  43.     UINT8  repeat1; 
  44. };
  45. INT32 KB_TimerInit(void);
  46. UINT32 KB_TimerCreate(KB_TimerMode mode, KB_TIMER_FUNC_POINTER entry, void *param);
  47. INT32 KB_TimerDel(UINT32 timerId);
  48. INT32 KB_TimerEnable(UINT32 timerId, UINT32 ms);
  49. INT32 KB_TimerDisable(UINT32 timerId);
  50.  
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif /* __TIMER_H */