-
Notifications
You must be signed in to change notification settings - Fork 2
/
OSTime.h
184 lines (123 loc) · 4.83 KB
/
OSTime.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/**
* \file OSTime.h
* \brief System Time managment struct declarations and functions prototypes.
*
*
**/
/*********************************************************************************************************
* BRTOS
* Brazilian Real-Time Operating System
* Acronymous of Basic Real-Time Operating System
*
*
* Open Source RTOS under MIT License
*
*
*
* OS Time managment functions Header
*
*
* Author: Gustavo Weber Denardin
* Revision: 1.0
* Date: 20/03/2009
*
*********************************************************************************************************/
#ifndef OS_TIME_H
#define OS_TIME_H
#include <stdint.h>
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///// OS Time Structure /////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/**
* \struct OSTime
* Real time clock - shows the current hours, minutes and seconds or the uptime info
*/
typedef struct {
uint8_t RTC_Second; ///< Seconds of the clock
uint8_t RTC_Minute; ///< Minutes of the clock
uint8_t RTC_Hour; ///< Hours of the clock
} OSTime;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///// OS Date Structure /////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/**
* \struct OSDate
* Operating System Date - Shows the current day, month and year ou the uptime info
*/
typedef struct {
uint8_t RTC_Day; ///< Day of the date
uint8_t RTC_Month; ///< Month of the date
uint16_t RTC_Year; ///< Year of the date
} OSDate;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///// OS Time and Date Structure /////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/**
* \struct OSTime_Date
* Operating System Date and time - Shows the current time and date
*/
typedef struct {
OSTime DC_Hora_Exata;
OSDate DC_Dia_Exato;
} OSTime_Date;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
struct _OSRTC
{
uint16_t Year;
uint8_t Month;
uint8_t Day;
uint8_t Hour;
uint8_t Min;
uint8_t Sec;
};
typedef struct _OSRTC OS_RTC;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///// Functions Prototypes /////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/*****************************************************************************************
* \fn void OSUpdateTime(OSTime *Ptr_Hora)
* \brief Update the system time
* Used to update the system time
* \param Ptr_Hora - pointer to the current system time
* \return None
*****************************************************************************************/
void OSUpdateTime(void);
void OSUpdateDate(void);
void OSResetTime(void);
void OSResetDate(void);
void OSUpdateUptime(void);
OSTime OSUptime(void);
OSDate OSUpDate(void);
// Calendar Functions
void OSUpdateCalendar(void);
void GetCalendar(OS_RTC *rtc);
void SetCalendar(OS_RTC *rtc);
void Init_Calendar(void);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
#endif