Line data Source code
1 0 : /*
2 : * Copyright (c) 2024 Cienet
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_DRIVERS_SENSOR_CLOCK_H_
8 : #define ZEPHYR_DRIVERS_SENSOR_CLOCK_H_
9 :
10 : #include <stdint.h>
11 :
12 : #ifdef __cplusplus
13 : extern "C" {
14 : #endif
15 :
16 : /**
17 : * @brief Retrieve the current sensor clock cycles.
18 : *
19 : * This function obtains the current cycle count from the selected
20 : * sensor clock source. The clock source may be the system clock or
21 : * an external clock, depending on the configuration.
22 : *
23 : * @param[out] cycles Pointer to a 64-bit unsigned integer where the
24 : * current clock cycle count will be stored.
25 : *
26 : * @return 0 on success, or an error code on failure.
27 : */
28 1 : int sensor_clock_get_cycles(uint64_t *cycles);
29 :
30 : /**
31 : * @brief Convert clock cycles to nanoseconds.
32 : *
33 : * This function converts clock cycles into nanoseconds based on the
34 : * clock frequency.
35 : *
36 : * @param cycles Clock cycles to convert.
37 : * @return Time in nanoseconds.
38 : */
39 1 : uint64_t sensor_clock_cycles_to_ns(uint64_t cycles);
40 :
41 : #ifdef __cplusplus
42 : }
43 : #endif
44 :
45 : #endif /* ZEPHYR_DRIVERS_SENSOR_CLOCK_H_ */
|