utimer.h revision f8a4ca325ef137a94869b34d36095ba7d08816a3
1/*******************************************************************************
2**  Name:       utimer.h
3**
4**  Description:
5**
6**  This file contains timer definitions from WIDCOMM's Universal Embedded
7**  Drivers API.
8**
9**  Copyright (c) 2001-2004, WIDCOMM Inc., All Rights Reserved.
10**  //  WIDCOMM Bluetooth Core. Proprietary and confidential.
11*******************************************************************************/
12
13#ifndef UTIMER_H
14#define UTIMER_H
15
16/*******************************************************************************
17** Timer APIs
18*******************************************************************************/
19
20/**** Timer IDs ****/
21
22#define UTIMER_ID_1               0
23#define UTIMER_ID_2               1
24#define UTIMER_ID_3               2
25#define UTIMER_ID_4               3
26
27#define UTIMER_NUM_TIMERS         4     /* Number of timers supported */
28
29typedef UINT8 tUTIMER_ID;
30
31/**** Timer types ****/
32
33#define UTIMER_TYPE_PERIODIC      0
34#define UTIMER_TYPE_ONESHOT       1
35
36typedef UINT8 tUTIMER_TYPE;
37
38
39/**** Timer time ****/
40
41typedef UINT32 tUTIMER_TIME;
42
43
44/**** Timer configuration ****/
45
46typedef struct
47{
48    tUTIMER_TIME period;
49    tUTIMER_TYPE type;
50} tUTIMER_CFG;
51
52
53/**** Timer feature types ****/
54#define UTIMER_FEAT_ID_1          0
55#define UTIMER_FEAT_ID_2          1
56#define UTIMER_FEAT_ID_3          2
57#define UTIMER_FEAT_ID_4          3
58#define UTIMER_FEAT_TYPE_PERIODIC 4
59#define UTIMER_FEAT_TYPE_ONESHOT  5
60
61typedef UINT8 tUTIMER_FEATURE;
62
63
64/**** Callback for timer expiration ****/
65typedef void (tUTIMER_CBACK)(tUTIMER_ID);
66
67
68/*******************************************************************************
69** Function Prototypes
70*******************************************************************************/
71#ifdef __cplusplus
72extern "C" {
73#endif
74
75UDRV_API extern void    UTIMER_Init(void *);
76UDRV_API extern void    UTIMER_Start(tUTIMER_ID, tUTIMER_CFG *, tUTIMER_CBACK *);
77UDRV_API extern void    UTIMER_Read(tUTIMER_ID, tUTIMER_TIME *);
78UDRV_API extern void    UTIMER_Stop(tUTIMER_ID);
79UDRV_API extern BOOLEAN UTIMER_Feature(tUTIMER_FEATURE);
80
81#ifdef __cplusplus
82}
83#endif
84
85#endif /* UTIMER_H */
86