]> git.sur5r.net Git - freertos/blob
00e80cc71a6005cd0ad8bf832f018e122cb269cc
[freertos] /
1 /*\r
2  * @brief LPC18xx/43xx RITimer chip driver\r
3  *\r
4  * @note\r
5  * Copyright(C) NXP Semiconductors, 2012\r
6  * All rights reserved.\r
7  *\r
8  * @par\r
9  * Software that is described herein is for illustrative purposes only\r
10  * which provides customers with programming information regarding the\r
11  * LPC products.  This software is supplied "AS IS" without any warranties of\r
12  * any kind, and NXP Semiconductors and its licensor disclaim any and\r
13  * all warranties, express or implied, including all implied warranties of\r
14  * merchantability, fitness for a particular purpose and non-infringement of\r
15  * intellectual property rights.  NXP Semiconductors assumes no responsibility\r
16  * or liability for the use of the software, conveys no license or rights under any\r
17  * patent, copyright, mask work right, or any other intellectual property rights in\r
18  * or to any products. NXP Semiconductors reserves the right to make changes\r
19  * in the software without notification. NXP Semiconductors also makes no\r
20  * representation or warranty that such application will be suitable for the\r
21  * specified use without further testing or modification.\r
22  *\r
23  * @par\r
24  * Permission to use, copy, modify, and distribute this software and its\r
25  * documentation is hereby granted, under NXP Semiconductors' and its\r
26  * licensor's relevant copyrights in the software, without fee, provided that it\r
27  * is used in conjunction with NXP Semiconductors microcontrollers.  This\r
28  * copyright, permission, and disclaimer notice must appear in all copies of\r
29  * this code.\r
30  */\r
31 \r
32 #ifndef __RITIMER_18XX_43XX_H_\r
33 #define __RITIMER_18XX_43XX_H_\r
34 \r
35 #ifdef __cplusplus\r
36 extern "C" {\r
37 #endif\r
38 \r
39 /** @defgroup RIT_18XX_43XX CHIP: LPC18xx/43xx RIT driver\r
40  * @ingroup CHIP_18XX_43XX_Drivers\r
41  * @{\r
42  */\r
43 \r
44 /**\r
45  * @brief       Initialize the RIT\r
46  * @param       pRITimer        : RITimer peripheral selected\r
47  * @return      None\r
48  */\r
49 void Chip_RIT_Init(LPC_RITIMER_T *pRITimer);\r
50 \r
51 /**\r
52  * @brief       Shutdown the RIT\r
53  * @param       pRITimer        : RITimer peripheral selected\r
54  * @return      None\r
55  */\r
56 void Chip_RIT_DeInit(LPC_RITIMER_T *pRITimer);\r
57 \r
58 /**\r
59  * @brief       Enable Timer\r
60  * @param       pRITimer        : RITimer peripheral selected\r
61  * @return      None\r
62  */\r
63 STATIC INLINE void Chip_RIT_Enable(LPC_RITIMER_T *pRITimer)\r
64 {\r
65         IP_RIT_Enable(pRITimer);\r
66 }\r
67 \r
68 /**\r
69  * @brief       Disable Timer\r
70  * @param       pRITimer        : RITimer peripheral selected\r
71  * @return      None\r
72  */\r
73 STATIC INLINE void Chip_RIT_Disable(LPC_RITIMER_T *pRITimer)\r
74 {\r
75         IP_RIT_Disable(pRITimer);\r
76 }\r
77 \r
78 /**\r
79  * @brief       Enable timer debug\r
80  * @param       pRITimer        : RITimer peripheral selected\r
81  * @return      None\r
82  */\r
83 STATIC INLINE void Chip_RIT_TimerDebugEnable(LPC_RITIMER_T *pRITimer)\r
84 {\r
85         IP_RIT_TimerDebugEnable(pRITimer);\r
86 }\r
87 \r
88 /**\r
89  * @brief       Disable timer debug\r
90  * @param       pRITimer        : RITimer peripheral selected\r
91  * @return      None\r
92  */\r
93 STATIC INLINE void Chip_RIT_TimerDebugDisable(LPC_RITIMER_T *pRITimer)\r
94 {\r
95         IP_RIT_TimerDebugDisable(pRITimer);\r
96 }\r
97 \r
98 /**\r
99  * @brief       Check whether interrupt flag is set or not\r
100  * @param       pRITimer        : RITimer peripheral selected\r
101  * @return      Current interrupt status, either ET or UNSET\r
102  */\r
103 STATIC INLINE IntStatus Chip_RIT_GetIntStatus(LPC_RITIMER_T *pRITimer)\r
104 {\r
105         return IP_RIT_GetIntStatus(pRITimer);\r
106 }\r
107 \r
108 /**\r
109  * @brief       Set a tick value for the interrupt to time out\r
110  * @param       pRITimer        : RITimer peripheral selected\r
111  * @param       val                     : value (in ticks) of the interrupt to be set\r
112  * @return      None\r
113  */\r
114 STATIC INLINE void Chip_RIT_SetCOMPVAL(LPC_RITIMER_T *pRITimer, uint32_t val)\r
115 {\r
116         IP_RIT_SetCOMPVAL(pRITimer, val);\r
117 }\r
118 \r
119 /**\r
120  * @brief       Enables or clears the RIT or interrupt\r
121  * @param       pRITimer        : RITimer peripheral selected\r
122  * @param       val                     : RIT to be set, one or more RIT_CTRL_* values\r
123  * @return      None\r
124  */\r
125 STATIC INLINE void Chip_RIT_EnableCTRL(LPC_RITIMER_T *pRITimer, uint32_t val)\r
126 {\r
127         IP_RIT_EnableCTRL(pRITimer, val);\r
128 }\r
129 \r
130 /**\r
131  * @brief       Clears the RIT interrupt\r
132  * @param       pRITimer        : RITimer peripheral selected\r
133  * @return      None\r
134  */\r
135 STATIC INLINE void Chip_RIT_ClearInt(LPC_RITIMER_T *pRITimer)\r
136 {\r
137         IP_RIT_EnableCTRL(pRITimer, RIT_CTRL_INT);\r
138 }\r
139 \r
140 /**\r
141  * @brief       Returns the current RIT Counter value\r
142  * @param       pRITimer        : RITimer peripheral selected\r
143  * @return      the current timer counter value\r
144  */\r
145 STATIC INLINE uint32_t Chip_RIT_GetCounter(LPC_RITIMER_T *pRITimer)\r
146 {\r
147         return IP_RIT_GetCounter(pRITimer);\r
148 }\r
149 \r
150 /**\r
151  * @brief       Set timer interval value\r
152  * @param       pRITimer                : RITimer peripheral selected\r
153  * @param       time_interval   : timer interval value (ms)\r
154  * @return      None\r
155  */\r
156 void Chip_RIT_SetTimerInterval(LPC_RITIMER_T *pRITimer, uint32_t time_interval);\r
157 \r
158 /**\r
159  * @}\r
160  */\r
161 \r
162 #ifdef __cplusplus\r
163 }\r
164 #endif\r
165 \r
166 #endif /* __RITIMER_18XX_43XX_H_ */\r