Very Simple Kernel 0.1.0
Loading...
Searching...
No Matches
vsk_Time.h
Go to the documentation of this file.
1/**
2 * @file
3 */
4#ifndef VSK_TIME_H
5#define VSK_TIME_H
6/**
7 * @ingroup vsk
8 * @defgroup vsk_Time vsk_Time
9 * @{
10 */
11
12/**
13 * @brief Time
14 */
15typedef struct vsk_Time vsk_Time_t;
16
17#include <stdint.h>
18
19/**
20 * @brief Time
21 */
22struct vsk_Time {
23 uint16_t tickPeriodMillis; /**< The period at which the system ticks */
24 uint32_t volatile millisCount; /**< The number of milliseconds since the system started */
25 uint32_t volatile opTimeSeconds; /**< The number of seconds since the system started */
26};
27
28/**
29 * @brief Time instance
30 */
31extern vsk_Time_t vsk_Time;
32
33/**
34 * @brief Initializes the Time instance
35 *
36 * @param self Time reference
37 * @param tickPeriodMillis The period at which the system ticks
38 * @return Initialized Time reference
39 */
41 vsk_Time_t * const self, uint16_t const tickPeriodMillis
42);
43
44/**
45 * @brief Gets the number of milliseconds since the system started
46 *
47 * @param self Time reference
48 * @return The number of milliseconds since the system started
49 */
50uint32_t vsk_Time_getMillisCount(vsk_Time_t * const self);
51
52/**
53 * @brief Gets the number of seconds since the system started
54 *
55 * @param self Time reference
56 * @return The number of seconds since the system started
57 */
58uint32_t vsk_Time_getOpTimeSeconds(vsk_Time_t * const self);
59
60/**
61 * @brief Gets the configured tick period in milliseconds
62 *
63 * @param self Time reference
64 * @return The configured tick period in milliseconds
65 */
66uint16_t vsk_Time_getTickPeriodMillis(vsk_Time_t * const self);
67
68/**
69 * @brief Ticks the time
70 *
71 * @param self Time reference
72 */
73void vsk_Time_onTick(vsk_Time_t * const self);
74
75/** @} */
76#endif // VSK_TIME_H
uint16_t vsk_Time_getTickPeriodMillis(vsk_Time_t *const self)
Gets the configured tick period in milliseconds.
Definition vsk_Time.c:33
uint32_t vsk_Time_getOpTimeSeconds(vsk_Time_t *const self)
Gets the number of seconds since the system started.
Definition vsk_Time.c:28
vsk_Time_t * vsk_Time_init(vsk_Time_t *const self, uint16_t const tickPeriodMillis)
Initializes the Time instance.
Definition vsk_Time.c:5
void vsk_Time_onTick(vsk_Time_t *const self)
Ticks the time.
Definition vsk_Time.c:14
vsk_Time_t vsk_Time
Time instance.
Definition vsk_Time.c:3
uint32_t vsk_Time_getMillisCount(vsk_Time_t *const self)
Gets the number of milliseconds since the system started.
Definition vsk_Time.c:22
Time.
Definition vsk_Time.h:22
uint32_t volatile opTimeSeconds
Definition vsk_Time.h:25
uint32_t volatile millisCount
Definition vsk_Time.h:24
uint16_t tickPeriodMillis
Definition vsk_Time.h:23