-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathARTC.cpp
More file actions
92 lines (69 loc) · 1.86 KB
/
ARTC.cpp
File metadata and controls
92 lines (69 loc) · 1.86 KB
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
#include "Arduino.h"
#include "ARTC.h"
void ARTC::setHourTimeToMessage(char *message){
int n0Hour, n1Hour, n0Minute, n1Minute;
if (RTC.read(_tm)) {
n0Hour = _tm.Hour/10;
n1Hour = _tm.Hour-(n0Hour*10);
n0Minute = _tm.Minute/10;
n1Minute = _tm.Minute-(n0Minute*10);
message[0]=n0Hour+'0';
message[1]=n1Hour+'0';
message[3]=n0Minute+'0';
message[4]=n1Minute+'0';
}
}
int ARTC::checkAlarm(){
// check if the time is the same of the Alarm
// ATriggered. To avoid multiple calls during the alarm (one minute)
int n0Hour, n1Hour, n0Minute, n1Minute;
int isAlarm = 0;
char hourMinute[6] = "00:00";
if (RTC.read(_tm)) {
n0Hour = _tm.Hour/10;
n1Hour = _tm.Hour-(n0Hour*10);
n0Minute = _tm.Minute/10;
n1Minute = _tm.Minute-(n0Minute*10);
hourMinute[0]=n0Hour+'0';
hourMinute[1]=n1Hour+'0';
hourMinute[3]=n0Minute+'0';
hourMinute[4]=n1Minute+'0';
int i = 0;
while(i<6 && _alarm[i] == hourMinute[i]) i++;
if (i==6){
if(!_ATriggered) isAlarm = 1;
_ATriggered = 1;
}else{
_ATriggered = 0;
}
}
return isAlarm;
}
void ARTC::getAlarm(char *alarm){
alarm[0] = _alarm[0];
alarm[1] = _alarm[1];
alarm[2] = _alarm[2];
alarm[3] = _alarm[3];
alarm[4] = _alarm[4];
}
void ARTC::setAlarm(char *alarm){
_alarm[0] = alarm[0];
_alarm[1] = alarm[1];
_alarm[2] = alarm[2];
_alarm[3] = alarm[3];
_alarm[4] = alarm[4];
_ATriggered = 0;
}
void ARTC::setCTime(char *adate){
tmElements_t tm;
unsigned int H, M; // Hour, Minutes
H = adate[0]-'0';
H = H * 10;
H = H + adate[1]-'0';
tm.Hour = H;
M = adate[3]-'0';
M = M * 10;
M += adate[4]-'0';
tm.Minute = M;
RTC.write(tm);
}