forked from the-kenny/WiserClock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFacesimple.cpp
78 lines (57 loc) · 1.37 KB
/
Facesimple.cpp
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
#include "ClockFace.h"
#include "HT1632.h"
#include "facesimple.h"
#include "DS1307.h"
#define rtc RTC
void SimpleFace::init() {
isTimeSetting = 0;
dotMillis = 0;
}
void SimpleFace::updateDisplay() {
byte hourColor = GREEN;
byte minColor = GREEN;
if (isTimeSetting) {
if (((millis() / 250) % 2) == 0) {
if (isTimeSetting == 1)
hourColor = BLACK;
else
minColor = BLACK;
}
}
ht1632_putBigDigit(2, 2, (hours < 10) ? 10 : hours/10, 1, hourColor, 6);
ht1632_putBigDigit(8, 2, hours % 10, 1, hourColor, 6);
ht1632_putBigDigit(16, 2, minutes/10, 1, minColor, 6);
ht1632_putBigDigit(22, 2, minutes%10, 1, minColor, 6);
long now = millis();
if(now-dotMillis > 800) {
dotMillis = now;
dotsVisible = !dotsVisible;
byte color = dotsVisible ? BLACK : GREEN;
ht1632_plot(15, 6, color);
ht1632_plot(15, 9, color);
}
}
// QVS Set time
void SimpleFace::setPressed() {
if (!isTimeSetting)
isTimeSetting = 1;
else
isTimeSetting = isTimeSetting ^ 3;
}
void SimpleFace::plusPressed() {
if (isTimeSetting == 1) {
if (++hours > 23)
hours = 0;
rtc.stop();
rtc.set(DS1307_HR,hours);
rtc.start();
}
else
if (isTimeSetting == 2){
if (++minutes > 59)
minutes = 0;
rtc.stop();
rtc.set(DS1307_MIN,minutes);
rtc.start();
}
}