VSF Documented
timer_template.inc
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#if VSF_HAL_USE_TIMER == ENABLED
19
20/*============================ INCLUDES ======================================*/
21/*============================ MACROS ========================================*/
22
23#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
24
25#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
26# define VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
27#endif
28# define VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
29#endif
30
31#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CTRL
32# define VSF_TIMER_CFG_REIMPLEMENT_API_CTRL DISABLED
33#endif
34
35#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_STATUS
36# define VSF_TIMER_CFG_REIMPLEMENT_API_STATUS DISABLED
37#endif
38
39#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
40# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL DISABLED
41#endif
42
43#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG
44# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
45#endif
46
47#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START
48# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
49#endif
50
51#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP
52# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
53#endif
54
55#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START
56# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
57#endif
58
59#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP
60# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
61#endif
62
63#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL
64# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
65#endif
66
67#ifdef VSF_TIMER_CFG_IMP_REMAP_PREFIX
68# undef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
69# undef VSF_TIMER_CFG_REIMPLEMENT_API_CTRL
70# undef VSF_TIMER_CFG_REIMPLEMENT_API_STATUS
71# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG
72# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START
73# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP
74# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START
75# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP
76# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL
77# define VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
78# undef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
79# define VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
80# define VSF_TIMER_CFG_REIMPLEMENT_API_CTRL ENABLED
81# define VSF_TIMER_CFG_REIMPLEMENT_API_STATUS ENABLED
82# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG ENABLED
83# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START ENABLED
84# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP ENABLED
85# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START ENABLED
86# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP ENABLED
87# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL ENABLED
88#endif
89
90#if VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
91# ifndef VSF_TIMER_CFG_CAPABILITY_IRQ_MASK
92# define VSF_TIMER_CFG_CAPABILITY_IRQ_MASK VSF_TIMER_IRQ_ALL_BITS_MASK
93# endif
94# ifndef VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN
95# define VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN 32
96# endif
97# ifndef VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM
98# define VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM 1
99# endif
100# ifndef VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT
101# define VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT 32
102# endif
103#endif
104
105/*============================ MACROFIED FUNCTIONS ===========================*/
106/*============================ TYPES =========================================*/
107/*============================ GLOBAL VARIABLES ==============================*/
108/*============================ LOCAL VARIABLES ===============================*/
109
110#define vsf_real_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_t)
111#define vsf_real_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_capability)
112#define vsf_real_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_get_configuration)
113#define vsf_real_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_ctrl)
114#define vsf_real_timer_status VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_status)
115#define vsf_real_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_config)
116#define vsf_real_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_start)
117#define vsf_real_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_stop)
118#define vsf_real_timer_channel_request_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_request_start)
119#define vsf_real_timer_channel_request_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_request_stop)
120#define vsf_real_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_ctrl)
121
122/*============================ PROTOTYPES ====================================*/
123/*============================ IMPLEMENTATION ================================*/
124
125#if VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
126vsf_timer_capability_t vsf_real_timer_capability(vsf_real_timer_t *timer_ptr)
127{
128 vsf_timer_capability_t timer_capability = {
132 .channel_cnt = VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT,
133 };
134
135 return timer_capability;
136}
137#endif
138
139#if VSF_TIMER_CFG_REIMPLEMENT_API_CTRL == DISABLED
140vsf_err_t vsf_real_timer_ctrl(vsf_real_timer_t *timer_ptr, vsf_timer_ctrl_t ctrl, void *param)
141{
142 VSF_HAL_ASSERT(NULL != timer_ptr);
143
144 return VSF_ERR_NOT_SUPPORT;
145}
146#endif
147
148#if VSF_TIMER_CFG_REIMPLEMENT_API_STATUS == DISABLED
149vsf_timer_status_t vsf_real_timer_status(vsf_real_timer_t *timer_ptr)
150{
151 VSF_HAL_ASSERT(NULL != timer_ptr);
153
154 return (vsf_timer_status_t){
155 .value = 0,
156 };
157}
158#endif
159
160#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG == DISABLED
161vsf_err_t vsf_real_timer_channel_config(vsf_real_timer_t *timer_ptr, uint8_t channel, vsf_timer_channel_cfg_t *cfg_ptr)
162{
163 VSF_HAL_ASSERT(NULL != timer_ptr);
164 VSF_HAL_ASSERT(NULL != cfg_ptr);
165
166 return VSF_ERR_NOT_SUPPORT;
167}
168#endif
169
170#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START == DISABLED
171vsf_err_t vsf_real_timer_channel_start(vsf_real_timer_t *timer_ptr, uint8_t channel)
172{
173 VSF_HAL_ASSERT(NULL != timer_ptr);
174
175 return VSF_ERR_NOT_SUPPORT;
176}
177#endif
178
179#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP == DISABLED
180vsf_err_t vsf_real_timer_channel_stop(vsf_real_timer_t *timer_ptr, uint8_t channel)
181{
182 VSF_HAL_ASSERT(NULL != timer_ptr);
183
184 return VSF_ERR_NOT_SUPPORT;
185}
186#endif
187
188#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START == DISABLED
189vsf_err_t vsf_real_timer_channel_request_start(vsf_real_timer_t *timer_ptr, uint8_t channel, vsf_timer_channel_request_t *request_ptr)
190{
191 VSF_HAL_ASSERT((NULL != timer_ptr) && (NULL != request_ptr));
192
193 return VSF_ERR_NOT_SUPPORT;
194}
195#endif
196
197#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP == DISABLED
198vsf_err_t vsf_real_timer_channel_request_stop(vsf_real_timer_t *timer_ptr, uint8_t channel)
199{
200 VSF_HAL_ASSERT(NULL != timer_ptr);
201
202 return VSF_ERR_NOT_SUPPORT;
203}
204#endif
205
206#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL == DISABLED
207vsf_err_t vsf_real_timer_channel_ctrl(vsf_real_timer_t *timer_ptr, uint8_t channel, vsf_timer_channel_ctrl_t ctrl, void *param)
208{
209 VSF_HAL_ASSERT(NULL != timer_ptr);
210
211 return VSF_ERR_NOT_SUPPORT;
212}
213#endif
214
215#if VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
216vsf_err_t vsf_real_timer_get_configuration(vsf_real_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr)
217{
218 VSF_HAL_ASSERT(NULL != timer_ptr);
219 VSF_HAL_ASSERT(NULL != cfg_ptr);
220
221 // Default implementation: not supported, trigger assertion
223
224 return VSF_ERR_NOT_SUPPORT;
225}
226#endif
227
228/*============================ MACROS ========================================*/
229
230#undef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
231#undef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
232#undef VSF_TIMER_CFG_CAPABILITY_IRQ_MASK
233#undef VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN
234#undef VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM
235#undef VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT
236#undef vsf_real_timer_t
237#undef vsf_real_timer_capability
238#undef vsf_real_timer_get_configuration
239#undef vsf_real_timer_ctrl
240#undef vsf_real_timer_channel_config
241#undef vsf_real_timer_channel_start
242#undef vsf_real_timer_channel_stop
243#undef vsf_real_timer_channel_request_start
244#undef vsf_real_timer_channel_request_stop
245#undef vsf_real_timer_channel_ctrl
246
247/*============================ MACROS ========================================*/
248
249#ifdef VSF_TIMER_CFG_IMP_REMAP_PREFIX
250
251# define vsf_imp_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_t)
252# define vsf_imp_timer_init VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_init)
253# define vsf_imp_timer_fini VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_fini)
254# define vsf_imp_timer_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_enable)
255# define vsf_imp_timer_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_disable)
256# define vsf_imp_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_capability)
257# define vsf_imp_timer_irq_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_enable)
258# define vsf_imp_timer_irq_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_disable)
259# define vsf_imp_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_config)
260# define vsf_imp_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_start)
261# define vsf_imp_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_stop)
262# define vsf_imp_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_ctrl)
263# define vsf_imp_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_ctrl)
264# define vsf_imp_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_get_configuration)
265
266# define vsf_remap_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_t)
267# define vsf_remap_timer_init VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_init)
268# define vsf_remap_timer_fini VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_fini)
269# define vsf_remap_timer_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_enable)
270# define vsf_remap_timer_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_disable)
271# define vsf_remap_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_capability)
272# define vsf_remap_timer_irq_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_irq_enable)
273# define vsf_remap_timer_irq_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_irq_disable)
274# define vsf_remap_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_config)
275# define vsf_remap_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_start)
276# define vsf_remap_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_stop)
277# define vsf_remap_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_ctrl)
278# define vsf_remap_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_ctrl)
279# define vsf_remap_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_get_configuration)
280
281# define VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS \
282 vsf_err_t vsf_imp_timer_init(vsf_imp_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr) \
283 { \
284 VSF_HAL_ASSERT(timer_ptr != NULL); \
285 return vsf_remap_timer_init(timer_ptr, cfg_ptr); \
286 } \
287 void vsf_imp_timer_fini(vsf_imp_timer_t *timer_ptr) \
288 { \
289 VSF_HAL_ASSERT(timer_ptr != NULL); \
290 vsf_remap_timer_fini(timer_ptr); \
291 } \
292 fsm_rt_t vsf_imp_timer_enable(vsf_imp_timer_t *timer_ptr) \
293 { \
294 VSF_HAL_ASSERT(timer_ptr != NULL); \
295 return vsf_remap_timer_enable(timer_ptr); \
296 } \
297 fsm_rt_t vsf_imp_timer_disable(vsf_imp_timer_t *timer_ptr) \
298 { \
299 VSF_HAL_ASSERT(timer_ptr != NULL); \
300 return vsf_remap_timer_disable(timer_ptr); \
301 } \
302 void vsf_imp_timer_irq_enable(vsf_imp_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask) \
303 { \
304 VSF_HAL_ASSERT(timer_ptr != NULL); \
305 vsf_remap_timer_irq_enable(timer_ptr, irq_mask); \
306 } \
307 void vsf_imp_timer_irq_disable(vsf_imp_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask) \
308 { \
309 VSF_HAL_ASSERT(timer_ptr != NULL); \
310 vsf_remap_timer_irq_disable(timer_ptr, irq_mask); \
311 } \
312 vsf_timer_capability_t vsf_imp_timer_capability(vsf_imp_timer_t *timer_ptr) \
313 { \
314 VSF_HAL_ASSERT(timer_ptr != NULL); \
315 return vsf_remap_timer_capability(timer_ptr); \
316 } \
317 vsf_err_t vsf_imp_timer_pwm_set(vsf_imp_timer_t *timer_ptr, uint8_t channel, uint32_t period, uint32_t pulse) \
318 { \
319 VSF_HAL_ASSERT(NULL != timer_ptr); \
320 return vsf_remap_timer_pwm_set(timer_ptr, channel, period, pulse); \
321 } \
322 vsf_err_t vsf_imp_timer_channel_config(vsf_imp_timer_t *timer_ptr, uint8_t channel, \
323 vsf_timer_channel_cfg_t *cfg_ptr) \
324 { \
325 VSF_HAL_ASSERT(NULL != timer_ptr); \
326 return vsf_remap_timer_channel_config(timer_ptr, channel, cfg_ptr); \
327 } \
328 fsm_rt_t vsf_imp_timer_channel_start(vsf_imp_timer_t *timer_ptr, uint8_t channel) \
329 { \
330 VSF_HAL_ASSERT(NULL != timer_ptr); \
331 return vsf_remap_timer_channel_start(timer_ptr, channel); \
332 } \
333 fsm_rt_t vsf_imp_timer_channel_stop(vsf_imp_timer_t *timer_ptr, uint8_t channel) \
334 { \
335 VSF_HAL_ASSERT(NULL != timer_ptr); \
336 return vsf_remap_timer_channel_stop(timer_ptr, channel); \
337 } \
338 vsf_err_t vsf_imp_timer_channel_ctrl(vsf_imp_timer_t *timer_ptr, uint8_t channel, \
339 vsf_timer_channel_ctrl_t ctrl, void *param) \
340 { \
341 VSF_HAL_ASSERT(NULL != timer_ptr); \
342 return vsf_remap_timer_channel_ctrl(timer_ptr, channel, ctrl, param); \
343 } \
344 void vsf_imp_timer_ctrl(vsf_imp_timer_t *timer_ptr, uint_fast32_t ctrl_bit, bool level) \
345 { \
346 VSF_HAL_ASSERT(NULL != timer_ptr); \
347 vsf_remap_timer_ctrl(timer_ptr, ctrl_bit, level); \
348 } \
349 \
350 vsf_err_t vsf_imp_timer_get_configuration(vsf_imp_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr) \
351 { \
352 VSF_HAL_ASSERT(timer_ptr != NULL); \
353 return vsf_remap_timer_get_configuration(timer_ptr, cfg_ptr); \
354 }
355#endif
356
357/*============================ GLOBAL VARIABLES ==============================*/
358
359#define VSF_HAL_TEMPLATE_IMP_NAME _timer
360#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _TIMER
361
362#if !defined(VSF_TIMER_CFG_IMP_PREFIX) && !defined(VSF_TIMER_CFG_IMP_DEVICE_PREFIX)
363# error "Please define VSF_TIMER_CFG_IMP_PREFIX in timer driver"
364#endif
365
366#if !defined(VSF_TIMER_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_TIMER_CFG_IMP_DEVICE_UPCASE_PREFIX)
367# error "Please define VSF_TIMER_CFG_IMP_UPCASE_PREFIX in timer driver"
368#endif
369
370#ifndef VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX
371# define VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX VSF_TIMER_CFG_IMP_UPCASE_PREFIX
372#endif
373
374#ifdef VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
375# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
376#endif
377
379
380#undef VSF_TIMER_CFG_IMP_PREFIX
381#undef VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX
382#undef VSF_TIMER_CFG_IMP_UPCASE_PREFIX
383#undef VSF_TIMER_CFG_IMP_DEVICE_PREFIX
384#undef VSF_TIMER_CFG_IMP_DEVICE_UPCASE_PREFIX
385#undef VSF_TIMER_CFG_IMP_LV0
386#undef VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
387#undef VSF_TIMER_CFG_IMP_HAS_OP
388#undef VSF_TIMER_CFG_IMP_EXTERN_OP
389
390#undef vsf_imp_timer_t
391#undef vsf_imp_timer_init
392#undef vsf_imp_timer_fini
393#undef vsf_imp_timer_enable
394#undef vsf_imp_timer_disable
395#undef vsf_imp_timer_capability
396#undef vsf_imp_timer_irq_enable
397#undef vsf_imp_timer_irq_disable
398#undef vsf_imp_timer_channel_config
399#undef vsf_imp_timer_channel_start
400#undef vsf_imp_timer_channel_stop
401#undef vsf_imp_timer_channel_ctrl
402#undef vsf_imp_timer_ctrl
403#undef vsf_imp_timer_get_configuration
404
405#undef vsf_remap_timer_t
406#undef vsf_remap_timer_init
407#undef vsf_remap_timer_fini
408#undef vsf_remap_timer_enable
409#undef vsf_remap_timer_disable
410#undef vsf_remap_timer_capability
411#undef vsf_remap_timer_irq_enable
412#undef vsf_remap_timer_irq_disable
413#undef vsf_remap_timer_channel_config
414#undef vsf_remap_timer_channel_start
415#undef vsf_remap_timer_channel_stop
416#undef vsf_remap_timer_channel_ctrl
417#undef vsf_remap_timer_ctrl
418#undef vsf_remap_timer_get_configuration
419
420#endif /* VSF_HAL_USE_TIEMR */
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM
Definition timer.c:203
#define VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN
Definition timer.c:202
#define VSF_TIMER_CFG_CAPABILITY_IRQ_MASK
Definition timer.c:201
#define NULL
Definition lvgl.h:26
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_timer.h:599
vsf_timer_irq_mask_t irq_mask
Definition timer.h:232
timer configuration
Definition vsf_template_timer.h:499
Definition vsf_template_timer.h:510
Definition vsf_template_timer.h:562
TIMER status information structure Contains the current status of TIMER operations.
Definition vsf_template_timer.h:589
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
vsf_timer_ctrl_t
Predefined VSF TIMER control command that can be reimplemented in specific hal drivers....
Definition vsf_template_timer.h:534
vsf_timer_channel_ctrl_t
Predefined VSF TIMER control command that can be reimplemented in specific hal drivers....
Definition vsf_template_timer.h:556
Generated from commit: vsfteam/vsf@74aa6ce