18#if VSF_HAL_USE_TIMER == ENABLED
23#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
24# define VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
27#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
28# define VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
31#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_IRQ_CLEAR
32# define VSF_TIMER_CFG_REIMPLEMENT_API_IRQ_CLEAR DISABLED
35#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CTRL
36# define VSF_TIMER_CFG_REIMPLEMENT_API_CTRL DISABLED
39#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_STATUS
40# define VSF_TIMER_CFG_REIMPLEMENT_API_STATUS DISABLED
44#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
45# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL DISABLED
48#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG
49# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
52#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START
53# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
56#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP
57# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
60#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START
61# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
64#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP
65# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
68#ifndef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL
69# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL
72#ifdef VSF_TIMER_CFG_IMP_REMAP_PREFIX
73# undef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
74# undef VSF_TIMER_CFG_REIMPLEMENT_API_CTRL
75# undef VSF_TIMER_CFG_REIMPLEMENT_API_STATUS
76# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG
77# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START
78# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP
79# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START
80# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP
81# undef VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL
82# define VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
83# undef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
84# define VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
85# define VSF_TIMER_CFG_REIMPLEMENT_API_CTRL ENABLED
86# define VSF_TIMER_CFG_REIMPLEMENT_API_STATUS ENABLED
87# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG ENABLED
88# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START ENABLED
89# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP ENABLED
90# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START ENABLED
91# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP ENABLED
92# define VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL ENABLED
95#if VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
96# ifndef VSF_TIMER_CFG_CAPABILITY_IRQ_MASK
97# define VSF_TIMER_CFG_CAPABILITY_IRQ_MASK VSF_TIMER_IRQ_ALL_BITS_MASK
99# ifndef VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN
100# define VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN 32
102# ifndef VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM
103# define VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM 1
105# ifndef VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT
106# define VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT 32
115#if defined(VSF_TIMER_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_TIMER_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
116# define vsf_real_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _t)
117# define vsf_real_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _capability)
118# define vsf_real_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _get_configuration)
119# define vsf_real_timer_irq_clear VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _irq_clear)
120# define vsf_real_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _ctrl)
121# define vsf_real_timer_status VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _status)
122# define vsf_real_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_config)
123# define vsf_real_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_start)
124# define vsf_real_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_stop)
125# define vsf_real_timer_channel_request_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_request_start)
126# define vsf_real_timer_channel_request_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_request_stop)
127# define vsf_real_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_DEVICE_PREFIX, _channel_ctrl)
129# define vsf_real_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_t)
130# define vsf_real_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_capability)
131# define vsf_real_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_get_configuration)
132# define vsf_real_timer_irq_clear VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_clear)
133# define vsf_real_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_ctrl)
134# define vsf_real_timer_status VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_status)
135# define vsf_real_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_config)
136# define vsf_real_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_start)
137# define vsf_real_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_stop)
138# define vsf_real_timer_channel_request_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_request_start)
139# define vsf_real_timer_channel_request_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_request_stop)
140# define vsf_real_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_ctrl)
146#if VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
153 .channel_cnt = VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT,
156 return timer_capability;
160#if VSF_TIMER_CFG_REIMPLEMENT_API_CTRL == DISABLED
169#if VSF_TIMER_CFG_REIMPLEMENT_API_STATUS == DISABLED
181#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CONFIG == DISABLED
191#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_START == DISABLED
192vsf_err_t vsf_real_timer_channel_start(vsf_real_timer_t *timer_ptr,
uint8_t channel)
200#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_STOP == DISABLED
201vsf_err_t vsf_real_timer_channel_stop(vsf_real_timer_t *timer_ptr,
uint8_t channel)
209#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_START == DISABLED
218#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_REQUEST_STOP == DISABLED
219vsf_err_t vsf_real_timer_channel_request_stop(vsf_real_timer_t *timer_ptr,
uint8_t channel)
227#if VSF_TIMER_CFG_REIMPLEMENT_API_CHANNEL_CTRL == DISABLED
236#if VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
249#if VSF_TIMER_CFG_REIMPLEMENT_API_IRQ_CLEAR == DISABLED
263#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CAPABILITY
264#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CFG
265#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CHANNEL_CFG
266#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CHANNEL_CTRL
267#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CHANNEL_MODE
268#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CHANNEL_REQUEST
269#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_CTRL
270#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_IRQ_MASK
271#undef VSF_TIMER_CFG_REIMPLEMENT_TYPE_STATUS
272#undef VSF_TIMER_CFG_REIMPLEMENT_API_CAPABILITY
273#undef VSF_TIMER_CFG_REIMPLEMENT_API_GET_CONFIGURATION
274#undef VSF_TIMER_CFG_CAPABILITY_IRQ_MASK
275#undef VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN
276#undef VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM
277#undef VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT
278#undef vsf_real_timer_t
279#undef vsf_real_timer_capability
280#undef vsf_real_timer_get_configuration
281#undef vsf_real_timer_irq_clear
282#undef vsf_real_timer_ctrl
283#undef vsf_real_timer_status
284#undef vsf_real_timer_channel_config
285#undef vsf_real_timer_channel_start
286#undef vsf_real_timer_channel_stop
287#undef vsf_real_timer_channel_request_start
288#undef vsf_real_timer_channel_request_stop
289#undef vsf_real_timer_channel_ctrl
293#ifdef VSF_TIMER_CFG_IMP_REMAP_PREFIX
295# define vsf_imp_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_t)
296# define vsf_imp_timer_init VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_init)
297# define vsf_imp_timer_fini VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_fini)
298# define vsf_imp_timer_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_enable)
299# define vsf_imp_timer_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_disable)
300# define vsf_imp_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_capability)
301# define vsf_imp_timer_irq_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_enable)
302# define vsf_imp_timer_irq_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_disable)
303# define vsf_imp_timer_irq_clear VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_irq_clear)
304# define vsf_imp_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_config)
305# define vsf_imp_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_start)
306# define vsf_imp_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_stop)
307# define vsf_imp_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_channel_ctrl)
308# define vsf_imp_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_ctrl)
309# define vsf_imp_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_PREFIX, _timer_get_configuration)
311# define vsf_remap_timer_t VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_t)
312# define vsf_remap_timer_init VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_init)
313# define vsf_remap_timer_fini VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_fini)
314# define vsf_remap_timer_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_enable)
315# define vsf_remap_timer_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_disable)
316# define vsf_remap_timer_capability VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_capability)
317# define vsf_remap_timer_irq_enable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_irq_enable)
318# define vsf_remap_timer_irq_disable VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_irq_disable)
319# define vsf_remap_timer_irq_clear VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_irq_clear)
320# define vsf_remap_timer_channel_config VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_config)
321# define vsf_remap_timer_channel_start VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_start)
322# define vsf_remap_timer_channel_stop VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_stop)
323# define vsf_remap_timer_channel_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_channel_ctrl)
324# define vsf_remap_timer_ctrl VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_ctrl)
325# define vsf_remap_timer_get_configuration VSF_MCONNECT(VSF_TIMER_CFG_IMP_REMAP_PREFIX, _timer_get_configuration)
327# define VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS \
328 vsf_err_t vsf_imp_timer_init(vsf_imp_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr) \
330 VSF_HAL_ASSERT(timer_ptr != NULL); \
331 return vsf_remap_timer_init(timer_ptr, cfg_ptr); \
333 void vsf_imp_timer_fini(vsf_imp_timer_t *timer_ptr) \
335 VSF_HAL_ASSERT(timer_ptr != NULL); \
336 vsf_remap_timer_fini(timer_ptr); \
338 fsm_rt_t vsf_imp_timer_enable(vsf_imp_timer_t *timer_ptr) \
340 VSF_HAL_ASSERT(timer_ptr != NULL); \
341 return vsf_remap_timer_enable(timer_ptr); \
343 fsm_rt_t vsf_imp_timer_disable(vsf_imp_timer_t *timer_ptr) \
345 VSF_HAL_ASSERT(timer_ptr != NULL); \
346 return vsf_remap_timer_disable(timer_ptr); \
348 void vsf_imp_timer_irq_enable(vsf_imp_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask) \
350 VSF_HAL_ASSERT(timer_ptr != NULL); \
351 vsf_remap_timer_irq_enable(timer_ptr, irq_mask); \
353 void vsf_imp_timer_irq_disable(vsf_imp_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask) \
355 VSF_HAL_ASSERT(timer_ptr != NULL); \
356 vsf_remap_timer_irq_disable(timer_ptr, irq_mask); \
358 vsf_timer_irq_mask_t vsf_imp_timer_irq_clear(vsf_imp_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask) \
360 VSF_HAL_ASSERT(timer_ptr != NULL); \
361 return vsf_remap_timer_irq_clear(timer_ptr, irq_mask); \
363 vsf_timer_capability_t vsf_imp_timer_capability(vsf_imp_timer_t *timer_ptr) \
365 VSF_HAL_ASSERT(timer_ptr != NULL); \
366 return vsf_remap_timer_capability(timer_ptr); \
368 vsf_err_t vsf_imp_timer_pwm_set(vsf_imp_timer_t *timer_ptr, uint8_t channel, uint32_t period, uint32_t pulse) \
370 VSF_HAL_ASSERT(NULL != timer_ptr); \
371 return vsf_remap_timer_pwm_set(timer_ptr, channel, period, pulse); \
373 vsf_err_t vsf_imp_timer_channel_config(vsf_imp_timer_t *timer_ptr, uint8_t channel, \
374 vsf_timer_channel_cfg_t *cfg_ptr) \
376 VSF_HAL_ASSERT(NULL != timer_ptr); \
377 return vsf_remap_timer_channel_config(timer_ptr, channel, cfg_ptr); \
379 fsm_rt_t vsf_imp_timer_channel_start(vsf_imp_timer_t *timer_ptr, uint8_t channel) \
381 VSF_HAL_ASSERT(NULL != timer_ptr); \
382 return vsf_remap_timer_channel_start(timer_ptr, channel); \
384 fsm_rt_t vsf_imp_timer_channel_stop(vsf_imp_timer_t *timer_ptr, uint8_t channel) \
386 VSF_HAL_ASSERT(NULL != timer_ptr); \
387 return vsf_remap_timer_channel_stop(timer_ptr, channel); \
389 vsf_err_t vsf_imp_timer_channel_ctrl(vsf_imp_timer_t *timer_ptr, uint8_t channel, \
390 vsf_timer_channel_ctrl_t ctrl, void *param) \
392 VSF_HAL_ASSERT(NULL != timer_ptr); \
393 return vsf_remap_timer_channel_ctrl(timer_ptr, channel, ctrl, param); \
395 void vsf_imp_timer_ctrl(vsf_imp_timer_t *timer_ptr, uint_fast32_t ctrl_bit, bool level) \
397 VSF_HAL_ASSERT(NULL != timer_ptr); \
398 vsf_remap_timer_ctrl(timer_ptr, ctrl_bit, level); \
401 vsf_err_t vsf_imp_timer_get_configuration(vsf_imp_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr) \
403 VSF_HAL_ASSERT(timer_ptr != NULL); \
404 return vsf_remap_timer_get_configuration(timer_ptr, cfg_ptr); \
410#define VSF_HAL_TEMPLATE_IMP_NAME _timer
411#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _TIMER
413#if !defined(VSF_TIMER_CFG_IMP_PREFIX) && !defined(VSF_TIMER_CFG_IMP_DEVICE_PREFIX)
414# error "Please define VSF_TIMER_CFG_IMP_PREFIX in timer driver"
417#if !defined(VSF_TIMER_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_TIMER_CFG_IMP_DEVICE_UPCASE_PREFIX)
418# error "Please define VSF_TIMER_CFG_IMP_UPCASE_PREFIX in timer driver"
421#ifndef VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX
422# define VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX VSF_TIMER_CFG_IMP_UPCASE_PREFIX
425#ifdef VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
426# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
431#undef VSF_TIMER_CFG_IMP_PREFIX
432#undef VSF_TIMER_CFG_IMP_COUNT_MASK_PREFIX
433#undef VSF_TIMER_CFG_IMP_UPCASE_PREFIX
434#undef VSF_TIMER_CFG_IMP_DEVICE_PREFIX
435#undef VSF_TIMER_CFG_IMP_DEVICE_UPCASE_PREFIX
436#undef VSF_TIMER_CFG_IMP_LV0
437#undef VSF_TIMER_CFG_IMP_REMAP_FUNCTIONS
438#undef VSF_TIMER_CFG_IMP_HAS_OP
439#undef VSF_TIMER_CFG_IMP_EXTERN_OP
440#undef VSF_TIMER_CFG_IMP_RENAME_DEVICE_PREFIX
442#undef vsf_imp_timer_t
443#undef vsf_imp_timer_init
444#undef vsf_imp_timer_fini
445#undef vsf_imp_timer_enable
446#undef vsf_imp_timer_disable
447#undef vsf_imp_timer_capability
448#undef vsf_imp_timer_irq_enable
449#undef vsf_imp_timer_irq_disable
450#undef vsf_imp_timer_channel_config
451#undef vsf_imp_timer_channel_start
452#undef vsf_imp_timer_channel_stop
453#undef vsf_imp_timer_channel_ctrl
454#undef vsf_imp_timer_ctrl
455#undef vsf_imp_timer_get_configuration
457#undef vsf_remap_timer_t
458#undef vsf_remap_timer_init
459#undef vsf_remap_timer_fini
460#undef vsf_remap_timer_enable
461#undef vsf_remap_timer_disable
462#undef vsf_remap_timer_capability
463#undef vsf_remap_timer_irq_enable
464#undef vsf_remap_timer_irq_disable
465#undef vsf_remap_timer_channel_config
466#undef vsf_remap_timer_channel_start
467#undef vsf_remap_timer_channel_stop
468#undef vsf_remap_timer_channel_ctrl
469#undef vsf_remap_timer_ctrl
470#undef vsf_remap_timer_get_configuration
472#undef VSF_HAL_TEMPLATE_IMP_NAME
473#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
498#ifdef VSF_TIMER_CFG_MODE_CHECK_UNIQUE
500#ifndef VSF_TIMER_CHECK_UNIQUE_CHANNEL_MODE_MODES
501# define VSF_TIMER_CHECK_UNIQUE_CHANNEL_MODE_MODES \
502 VSF_TIMER_CHANNEL_MODE_BASE
505#ifndef VSF_TIMER_CHECK_UNIQUE_BASE_COUNTER_MODES
506# define VSF_TIMER_CHECK_UNIQUE_BASE_COUNTER_MODES \
507 VSF_TIMER_BASE_ONESHOT, \
508 VSF_TIMER_BASE_CONTINUES
524#ifdef VSF_TIMER_CHANNEL_MODE_PWM
525 , VSF_TIMER_CHANNEL_MODE_PWM
527#ifdef VSF_TIMER_CHANNEL_MODE_OUTPUT_COMPARE
528 , VSF_TIMER_CHANNEL_MODE_OUTPUT_COMPARE
530#ifdef VSF_TIMER_CHANNEL_MODE_INPUT_CAPTURE
531 , VSF_TIMER_CHANNEL_MODE_INPUT_CAPTURE
533#ifdef VSF_TIMER_CHANNEL_MODE_ENCODER
534 , VSF_TIMER_CHANNEL_MODE_ENCODER
536#ifdef VSF_TIMER_CHANNEL_MODE_ONE_PULSE
537 , VSF_TIMER_CHANNEL_MODE_ONE_PULSE
539#ifdef VSF_TIMER_CHANNEL_MODE_HALL_SENSOR
540 , VSF_TIMER_CHANNEL_MODE_HALL_SENSOR
554#ifdef VSF_TIMER_CUSTOM_MODE_VALUES
566#ifdef VSF_TIMER_CHANNEL_MODE_PWM
567 , VSF_TIMER_CHANNEL_MODE_PWM
569#ifdef VSF_TIMER_CHANNEL_MODE_OUTPUT_COMPARE
570 , VSF_TIMER_CHANNEL_MODE_OUTPUT_COMPARE
572#ifdef VSF_TIMER_CHANNEL_MODE_INPUT_CAPTURE
573 , VSF_TIMER_CHANNEL_MODE_INPUT_CAPTURE
575#ifdef VSF_TIMER_CHANNEL_MODE_ENCODER
576 , VSF_TIMER_CHANNEL_MODE_ENCODER
578#ifdef VSF_TIMER_CHANNEL_MODE_ONE_PULSE
579 , VSF_TIMER_CHANNEL_MODE_ONE_PULSE
581#ifdef VSF_TIMER_CHANNEL_MODE_HALL_SENSOR
582 , VSF_TIMER_CHANNEL_MODE_HALL_SENSOR
584#ifdef VSF_TIMER_BASE_COUNTER_UP
585 , VSF_TIMER_BASE_COUNTER_UP
587#ifdef VSF_TIMER_BASE_COUNTER_DOWN
588 , VSF_TIMER_BASE_COUNTER_DOWN
590#ifdef VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED1
591 , VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED1
593#ifdef VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED2
594 , VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED2
596#ifdef VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED3
597 , VSF_TIMER_BASE_COUNTER_CENTER_ALIGNED3
601#ifdef VSF_TIMER_CUSTOM_MODE_VALUES
602 , VSF_TIMER_CUSTOM_MODE_VALUES
606#undef VSF_TIMER_CHECK_UNIQUE_CHANNEL_MODE_MODES
607#undef VSF_TIMER_CHECK_UNIQUE_BASE_COUNTER_MODES
612#ifdef VSF_TIMER_CFG_IRQ_MASK_CHECK_UNIQUE
614#ifdef VSF_TIMER_CUSTOM_IRQ_MASK_VALUES
629#ifdef VSF_TIMER_CUSTOM_IRQ_MASK_VALUES
630 , VSF_TIMER_CUSTOM_IRQ_MASK_VALUES
637#ifdef VSF_TIMER_CFG_CTRL_CHECK_UNIQUE
639#ifdef VSF_TIMER_CUSTOM_CTRL_VALUES
648 VSF_TIMER_CFG_CTRL_CHECK_UNIQUE,
652#ifdef VSF_TIMER_CUSTOM_CTRL_VALUES
653 , VSF_TIMER_CUSTOM_CTRL_VALUES
660#ifdef VSF_TIMER_CFG_CHANNEL_CTRL_CHECK_UNIQUE
662#ifdef VSF_TIMER_CUSTOM_CHANNEL_CTRL_VALUES
671 VSF_TIMER_CFG_CHANNEL_CTRL_CHECK_UNIQUE,
675#ifdef VSF_TIMER_CUSTOM_CHANNEL_CTRL_VALUES
676 , VSF_TIMER_CUSTOM_CHANNEL_CTRL_VALUES
681#undef VSF_TIMER_CFG_MODE_CHECK_UNIQUE
682#undef VSF_TIMER_CFG_IRQ_MASK_CHECK_UNIQUE
683#undef VSF_TIMER_CFG_CTRL_CHECK_UNIQUE
684#undef VSF_TIMER_CFG_CHANNEL_CTRL_CHECK_UNIQUE
685#undef VSF_TIMER_CUSTOM_MODE_VALUES
686#undef VSF_TIMER_CUSTOM_IRQ_MASK_VALUES
687#undef VSF_TIMER_CUSTOM_CTRL_VALUES
688#undef VSF_TIMER_CUSTOM_CHANNEL_CTRL_VALUES
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
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_timer.h:681
vsf_timer_irq_mask_t irq_mask
Definition timer.h:231
timer configuration
Definition vsf_template_timer.h:564
Definition vsf_template_timer.h:575
Definition vsf_template_timer.h:644
TIMER status information structure Contains the current status of TIMER operations.
Definition vsf_template_timer.h:671
#define VSF_TIMER_CFG_IRQ_MASK_CHECK_UNIQUE
Definition timer.c:309
#define VSF_TIMER_CFG_MODE_CHECK_UNIQUE
Definition timer.c:308
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426
#define __VSF_TIMER_CFG_SUPPORT_STANDARD_OPTIONAL
Enable standard optional features support.
Definition vsf_template_timer.h:242
vsf_timer_irq_mask_t
Definition vsf_template_timer.h:514
@ VSF_TIMER_IRQ_MASK_OVERFLOW
Definition vsf_template_timer.h:515
@ VSF_TIMER_CHANNEL_MODE_BASE
Definition vsf_template_timer.h:306
@ VSF_TIMER_BASE_ONESHOT
Standard optional channel modes Note: These are standard optional features. This macro should NOT be ...
Definition vsf_template_timer.h:362
@ VSF_TIMER_BASE_CONTINUES
Definition vsf_template_timer.h:364
vsf_timer_ctrl_t
Predefined VSF TIMER control command that can be reimplemented in specific hal drivers....
Definition vsf_template_timer.h:599
@ __VSF_TIMER_CTRL_DUMMY
Dummy value for compilation, required when no actual control commands are defined.
Definition vsf_template_timer.h:617
vsf_timer_channel_ctrl_t
Predefined VSF TIMER control command that can be reimplemented in specific hal drivers....
Definition vsf_template_timer.h:638
@ __VSF_TIMER_CHANNEL_CTRL_DUMMY
Dummy value for compilation.
Definition vsf_template_timer.h:639