nRF Connect SDK Bare Metal API 2.0.99
Loading...
Searching...
No Matches
bm_timer.h
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
13#ifndef BM_TIMER_H__
14#define BM_TIMER_H__
15
16#include <stdint.h>
17#include <zephyr/kernel.h>
18#include <zephyr/sys/time_units.h>
19#include <zephyr/sys/util.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
30#define BM_TIMER_MIN_TIMEOUT_US (uint32_t)((5 * 1000000) / 32768)
31
35#define BM_TIMER_MIN_TIMEOUT_TICKS k_us_to_ticks_ceil32(BM_TIMER_MIN_TIMEOUT_US)
36
40#define BM_TIMER_MS_TO_TICKS(ms) k_ms_to_ticks_floor32(ms)
41
45#define BM_TIMER_US_TO_TICKS(us) k_us_to_ticks_floor32(us)
46
60
66typedef void (*bm_timer_timeout_handler_t)(void *context);
67
76
87int bm_timer_init(struct bm_timer *timer, enum bm_timer_mode mode,
88 bm_timer_timeout_handler_t timeout_handler);
89
102int bm_timer_start(struct bm_timer *timer, uint32_t timeout_ticks, void *context);
103
112int bm_timer_stop(struct bm_timer *timer);
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif /* BM_TIMER_H__ */
119
int bm_timer_start(struct bm_timer *timer, uint32_t timeout_ticks, void *context)
Start a timer.
void(* bm_timer_timeout_handler_t)(void *context)
Application time-out handler type.
Definition bm_timer.h:66
bm_timer_mode
Timer modes.
Definition bm_timer.h:50
@ BM_TIMER_MODE_REPEATED
The timer will restart each time it expires.
Definition bm_timer.h:58
@ BM_TIMER_MODE_SINGLE_SHOT
The timer will expire only once.
Definition bm_timer.h:54
int bm_timer_init(struct bm_timer *timer, enum bm_timer_mode mode, bm_timer_timeout_handler_t timeout_handler)
Initialize a timer instance.
int bm_timer_stop(struct bm_timer *timer)
Stop a timer.
enum bm_timer_mode mode
Definition bm_timer.h:73
struct k_timer timer
Definition bm_timer.h:72
bm_timer_timeout_handler_t handler
Definition bm_timer.h:74
Timer instance structure.
Definition bm_timer.h:71