Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_DUAL_TIMER_H__
53 #define __GR55xx_HAL_DUAL_TIMER_H__
168 #define DUAL_TIMER_PRESCALER_DIV0 LL_DUAL_TIMER_PRESCALER_DIV0
169 #define DUAL_TIMER_PRESCALER_DIV16 LL_DUAL_TIMER_PRESCALER_DIV16
170 #define DUAL_TIMER_PRESCALER_DIV256 LL_DUAL_TIMER_PRESCALER_DIV256
176 #define DUAL_TIMER_COUNTERMODE_LOOP 0x00000000U
177 #define DUAL_TIMER_COUNTERMODE_ONESHOT DUAL_TIMER_CTRL_ONESHOT
191 #define __HAL_DUAL_TIMER_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_DUAL_TIMER_STATE_RESET)
197 #define __HAL_DUAL_TIMER_ENABLE(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL, DUAL_TIMER_CTRL_EN)
203 #define __HAL_DUAL_TIMER_DISABLE(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->CTRL, DUAL_TIMER_CTRL_EN)
209 #define __HAL_DUAL_TIMER_ENABLE_IT(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL, DUAL_TIMER_CTRL_INTEN)
215 #define __HAL_DUAL_TIMER_DISABLE_IT(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->CTRL, DUAL_TIMER_CTRL_INTEN)
221 #define __HAL_DUAL_TIMER_GET_FLAG_IT(__HANDLE__) ll_dual_timer_is_active_flag_it(__HANDLE__->p_instance)
227 #define __HAL_DUAL_TIMER_CLEAR_FLAG_IT(__HANDLE__) ll_dual_timer_clear_flag_it(__HANDLE__->p_instance)
240 #define IS_DUAL_TIMER_PRESCALER(__PRESCALER__) (((__PRESCALER__) == DUAL_TIMER_PRESCALER_DIV0) || \
241 ((__PRESCALER__) == DUAL_TIMER_PRESCALER_DIV16) || \
242 ((__PRESCALER__) == DUAL_TIMER_PRESCALER_DIV256))
248 #define IS_DUAL_TIMER_COUNTERMODE(__MODE__) (((__MODE__) == DUAL_TIMER_COUNTERMODE_LOOP) || \
249 ((__MODE__) == DUAL_TIMER_COUNTERMODE_ONESHOT))
struct _hal_dual_timer_callback hal_dual_timer_callback_t
HAL_DUAL_TIMER Callback function definition.
hal_lock_t
HAL Lock structures definition.
HAL_DUAL_TIMER Callback function definition.
hal_status_t hal_dual_timer_base_deinit(dual_timer_handle_t *p_dual_timer)
De-initialize the DUAL TIMER peripheral.
hal_dual_timer_state_t hal_dual_timer_get_state(dual_timer_handle_t *p_dual_timer)
Return the DUAL TIMER handle state.
uint32_t hal_dual_timer_get_counter_value(dual_timer_handle_t *p_dual_timer)
Return the DUAL TIMER counter value.
@ HAL_DUAL_TIMER_STATE_RESET
Peripheral not yet initialized or disabled
@ HAL_DUAL_TIMER_STATE_BUSY
An internal process is ongoing
@ HAL_DUAL_TIMER_STATE_READY
Peripheral Initialized and ready for use
void(* dual_timer_msp_init)(dual_timer_handle_t *p_dual_timer)
DUAL_TIMER init MSP callback
@ HAL_DUAL_TIMER_STATE_ERROR
Reception process is ongoing
hal_status_t hal_dual_timer_set_background_reload(dual_timer_handle_t *p_dual_timer, uint32_t reload_value)
DUAL TIMER set background reload value The background reload value contains the value from which the ...
hal_status_t hal_dual_timer_set_reload_background_reload(dual_timer_handle_t *p_dual_timer, uint32_t reload_value, uint32_t bg_reload_value)
DUAL TIMER set current reload value and next background reload value The background reload value cont...
DUAL_TIMER handle Structure definition.
hal_status_t hal_dual_timer_base_stop(dual_timer_handle_t *p_dual_timer)
Stops the DUAL TIMER counter.
uint32_t auto_reload
Specifies the auto-reload value.
dual_timer_regs_t * p_instance
Register base address
void(* dual_timer_msp_deinit)(dual_timer_handle_t *p_dual_timer)
DUAL_TIMER de-init MSP callback
Header file containing functions prototypes of DUAL TIMER LL library.
DUAL TIMER init Structure definition.
hal_status_t hal_dual_timer_base_start(dual_timer_handle_t *p_dual_timer)
Starts the DUAL TIMER counter.
void hal_dual_timer_base_msp_deinit(dual_timer_handle_t *p_dual_timer)
De-initialize the DUAL TIMER MSP.
hal_status_t hal_dual_timer_base_start_it(dual_timer_handle_t *p_dual_timer)
Starts the DUAL TIMER counter in interrupt mode.
hal_dual_timer_state_t
HAL DUAL TIMER State Enumerations definition.
struct _dual_timer_handle dual_timer_handle_t
DUAL_TIMER handle Structure definition.
hal_status_t
HAL Status structures definition.
uint32_t counter_mode
Specifies the counter mode.
hal_status_t hal_dual_timer_base_init(dual_timer_handle_t *p_dual_timer)
Initialize the DUAL TIMER according to the specified parameters in the dual_timer_init_t and initiali...
uint32_t prescaler
Specifies the prescaler value used to divide the DUAL_TIMER clock.
struct _dual_timer_init dual_timer_init_t
DUAL TIMER init Structure definition.
void hal_dual_timer_irq_handler(dual_timer_handle_t *p_dual_timer)
Handle DUAL TIMER interrupt request.
__IO hal_dual_timer_state_t state
DUAL_TIMER operation state
void hal_dual_timer_period_elapsed_callback(dual_timer_handle_t *p_dual_timer)
Period elapsed callback in non-blocking mode.
void(* dual_timer_period_elapsed_callback)(dual_timer_handle_t *p_dual_timer)
DUAL_TIMER period elapsed callback.
hal_status_t hal_dual_timer_base_stop_it(dual_timer_handle_t *p_dual_timer)
Stops the DUAL TIMER counter in interrupt mode.
hal_status_t hal_dual_timer_set_config(dual_timer_handle_t *p_dual_timer, dual_timer_init_t *p_structure)
DUAL TIMER configuration.
dual_timer_init_t init
DUAL_TIMER Base required parameters
__IO hal_lock_t lock
Locking object
void hal_dual_timer_base_msp_init(dual_timer_handle_t *p_dual_timer)
Initialize the DUAL TIMER MSP.
This file contains HAL common definitions, enumeration, macros and structures definitions.