konashi/SBBLEのテスト
Fork of BLE_LoopbackUART by
Application Timer
Application timer functionality. More...
Typedefs | |
typedef uint32_t | app_timer_id_t |
Timer id type. | |
typedef void(* | app_timer_timeout_handler_t )(void *p_context) |
Application timeout handler type. | |
typedef uint32_t(* | app_timer_evt_schedule_func_t )(app_timer_timeout_handler_t timeout_handler, void *p_context) |
Type of function for passing events from the timer module to the scheduler. | |
Enumerations | |
enum | app_timer_mode_t { APP_TIMER_MODE_SINGLE_SHOT, APP_TIMER_MODE_REPEATED } |
Timer modes. More... | |
Functions | |
uint32_t | app_timer_init (uint32_t prescaler, uint8_t max_timers, uint8_t op_queues_size, void *p_buffer, app_timer_evt_schedule_func_t evt_schedule_func) |
Function for initializing the timer module. | |
uint32_t | app_timer_create (app_timer_id_t *p_timer_id, app_timer_mode_t mode, app_timer_timeout_handler_t timeout_handler) |
Function for creating a timer instance. | |
uint32_t | app_timer_start (app_timer_id_t timer_id, uint32_t timeout_ticks, void *p_context) |
Function for starting a timer. | |
uint32_t | app_timer_stop (app_timer_id_t timer_id) |
Function for stopping the specified timer. | |
uint32_t | app_timer_stop_all (void) |
Function for stopping all running timers. | |
uint32_t | app_timer_cnt_get (uint32_t *p_ticks) |
Function for returning the current value of the RTC1 counter. | |
uint32_t | app_timer_cnt_diff_compute (uint32_t ticks_to, uint32_t ticks_from, uint32_t *p_ticks_diff) |
Function for computing the difference between two RTC1 counter values. |
Detailed Description
Application timer functionality.
It enables the application to create multiple timer instances based on the RTC1 peripheral. Checking for timeouts and invokation of user timeout handlers is performed in the RTC1 interrupt handler. List handling is done using a software interrupt (SWI0). Both interrupt handlers are running in APP_LOW priority level.
- Note:
- When calling app_timer_start() or app_timer_stop(), the timer operation is just queued, and the software interrupt is triggered. The actual timer start/stop operation is executed by the SWI0 interrupt handler. Since the SWI0 interrupt is running in APP_LOW, if the application code calling the timer function is running in APP_LOW or APP_HIGH, the timer operation will not be performed until the application handler has returned. This will be the case e.g. when stopping a timer from a timeout handler when not using the scheduler.
Use the USE_SCHEDULER parameter of the APP_TIMER_INIT() macro to select if the Scheduler is to be used or not.
- Note:
- Even if the scheduler is not used, app_timer.h will include app_scheduler.h, so when compiling, app_scheduler.h must be available in one of the compiler include paths.
Typedef Documentation
typedef uint32_t(* app_timer_evt_schedule_func_t)(app_timer_timeout_handler_t timeout_handler, void *p_context) |
Type of function for passing events from the timer module to the scheduler.
Definition at line 113 of file app_timer.h.
typedef uint32_t app_timer_id_t |
Timer id type.
Definition at line 107 of file app_timer.h.
typedef void(* app_timer_timeout_handler_t)(void *p_context) |
Application timeout handler type.
Definition at line 110 of file app_timer.h.
Enumeration Type Documentation
enum app_timer_mode_t |
Timer modes.
- Enumerator:
APP_TIMER_MODE_SINGLE_SHOT The timer will expire only once.
APP_TIMER_MODE_REPEATED The timer will restart each time it expires.
Definition at line 117 of file app_timer.h.
Function Documentation
uint32_t app_timer_cnt_diff_compute | ( | uint32_t | ticks_to, |
uint32_t | ticks_from, | ||
uint32_t * | p_ticks_diff | ||
) |
Function for computing the difference between two RTC1 counter values.
- Parameters:
-
[in] ticks_to Value returned by app_timer_cnt_get(). [in] ticks_from Value returned by app_timer_cnt_get(). [out] p_ticks_diff Number of ticks from ticks_from to ticks_to.
- Return values:
-
NRF_SUCCESS Counter difference was successfully computed.
Definition at line 1125 of file app_timer.cpp.
uint32_t app_timer_cnt_get | ( | uint32_t * | p_ticks ) |
Function for returning the current value of the RTC1 counter.
- Parameters:
-
[out] p_ticks Current value of the RTC1 counter.
- Return values:
-
NRF_SUCCESS Counter was successfully read.
Definition at line 1118 of file app_timer.cpp.
uint32_t app_timer_create | ( | app_timer_id_t * | p_timer_id, |
app_timer_mode_t | mode, | ||
app_timer_timeout_handler_t | timeout_handler | ||
) |
Function for creating a timer instance.
- Parameters:
-
[out] p_timer_id Id of the newly created timer. [in] mode Timer mode. [in] timeout_handler Function to be executed when the timer expires.
- Return values:
-
NRF_SUCCESS Timer was successfully created. NRF_ERROR_INVALID_PARAM Invalid parameter. NRF_ERROR_INVALID_STATE Application timer module has not been initialized. NRF_ERROR_NO_MEM Maximum number of timers has already been reached.
- Note:
- This function does the timer allocation in the caller's context. It is also not protected by a critical region. Therefore care must be taken not to call it from several interrupt levels simultaneously.
Definition at line 989 of file app_timer.cpp.
uint32_t app_timer_init | ( | uint32_t | prescaler, |
uint8_t | max_timers, | ||
uint8_t | op_queues_size, | ||
void * | p_buffer, | ||
app_timer_evt_schedule_func_t | evt_schedule_func | ||
) |
Function for initializing the timer module.
- Note:
- Normally initialization should be done using the APP_TIMER_INIT() macro, as that will both allocate the buffers needed by the timer module (including aligning the buffers correctly, and also take care of connecting the timer module to the scheduler (if specified).
- Parameters:
-
[in] prescaler Value of the RTC1 PRESCALER register. Set to 0 for no prescaling. [in] max_timers Maximum number of timers that can be created at any given time. [in] op_queues_size Size of queues holding timer operations that are pending execution. NOTE: Due to the queue implementation, this size must be one more than the size that is actually needed. [in] p_buffer Pointer to memory buffer for internal use in the app_timer module. The size of the buffer can be computed using the APP_TIMER_BUF_SIZE() macro. The buffer must be aligned to a 4 byte boundary. [in] evt_schedule_func Function for passing timeout events to the scheduler. Point to app_timer_evt_schedule() to connect to the scheduler. Set to NULL to make the timer module call the timeout handler directly from the timer interrupt handler.
- Return values:
-
NRF_SUCCESS Successful initialization. NRF_ERROR_INVALID_PARAM Invalid parameter (buffer not aligned to a 4 byte boundary or NULL).
Definition at line 915 of file app_timer.cpp.
uint32_t app_timer_start | ( | app_timer_id_t | timer_id, |
uint32_t | timeout_ticks, | ||
void * | p_context | ||
) |
Function for starting a timer.
- Parameters:
-
[in] timer_id Id of timer to start. [in] timeout_ticks Number of ticks (of RTC1, including prescaling) to timeout event (minimum 5 ticks). [in] p_context General purpose pointer. Will be passed to the timeout handler when the timer expires.
- Return values:
-
NRF_SUCCESS Timer was successfully started. NRF_ERROR_INVALID_PARAM Invalid parameter. NRF_ERROR_INVALID_STATE Application timer module has not been initialized, or timer has not been created. NRF_ERROR_NO_MEM Timer operations queue was full.
- Note:
- The minimum timeout_ticks value is 5.
- For multiple active timers, timeouts occurring in close proximity to each other (in the range of 1 to 3 ticks) will have a positive jitter of maximum 3 ticks.
- When calling this method on a timer which is already running, the second start operation will be ignored.
Definition at line 1056 of file app_timer.cpp.
uint32_t app_timer_stop | ( | app_timer_id_t | timer_id ) |
Function for stopping the specified timer.
- Parameters:
-
[in] timer_id Id of timer to stop.
- Return values:
-
NRF_SUCCESS Timer was successfully stopped. NRF_ERROR_INVALID_PARAM Invalid parameter. NRF_ERROR_INVALID_STATE Application timer module has not been initialized, or timer has not been created. NRF_ERROR_NO_MEM Timer operations queue was full.
Definition at line 1085 of file app_timer.cpp.
uint32_t app_timer_stop_all | ( | void | ) |
Function for stopping all running timers.
- Return values:
-
NRF_SUCCESS All timers were successfully stopped. NRF_ERROR_INVALID_STATE Application timer module has not been initialized. NRF_ERROR_NO_MEM Timer operations queue was full.
Definition at line 1106 of file app_timer.cpp.
Generated on Tue Jul 12 2022 20:35:46 by 1.7.2