1

Update display text only by interrupt or on button press

* Re-calculate displayed time only ater rtcsync or when time adjusted by
  buttons
This commit is contained in:
eleksir
2019-08-04 21:32:34 +03:00
parent ea293ec335
commit bd1f945ad3

View File

@@ -148,8 +148,6 @@ ISR(TIMER1_OVF_vect)
void loop() void loop()
{ {
unsigned long currentMillis = millis(); unsigned long currentMillis = millis();
char str[4];
float d;
/* /*
* Let's implement time compenstion for individual rtc module time * Let's implement time compenstion for individual rtc module time
@@ -172,6 +170,7 @@ void loop()
mysecond = clock.second; mysecond = clock.second;
myminute = clock.minute; myminute = clock.minute;
myhour = clock.hour; myhour = clock.hour;
updateTimeStr(myhour, myminute);
rtcsync = false; rtcsync = false;
} }
@@ -210,6 +209,8 @@ void loop()
clock.setTime(); clock.setTime();
} }
} }
updateTimeStr(myhour, myminute);
} }
if ((currentMillis - previousLightTimer >= refresh_interval) or if ((currentMillis - previousLightTimer >= refresh_interval) or
@@ -257,28 +258,34 @@ void loop()
} else if (ambLight < 100) { } else if (ambLight < 100) {
Display.setBrightness(-15); Display.setBrightness(-15);
} }
// make blinking dot
if (myhour > 0) {
if (dot) {
Display.setNumber((myhour * 100 + myminute), 2);
} else {
Display.setNumber((myhour * 100 + myminute));
}
} else {
/* 0 o'clock is an exception, we don't want to see "00.00", we
want see "0.00" or "0 00", so we have to use this "hack" */
if (dot) {
d = float(myminute) / 100;
Display.setNumber(d, 2);
} else {
sprintf(str, "%2d%02d", myhour, myminute);
Display.setChars(str);
}
}
} }
Display.refreshDisplay(); Display.refreshDisplay();
} }
void updateTimeStr(uint8_t h, uint8_t m)
{
char str[4];
float d;
// make blinking dot
if (h > 0) {
if (dot) {
Display.setNumber((h * 100 + m), 2);
} else {
Display.setNumber((h * 100 + m));
}
} else {
/* 0 o'clock is an exception, we don't want to see "00.00", we
want see "0.00" or "0 00", so we have to use this "hack" */
if (dot) {
d = float(m) / 100;
Display.setNumber(d, 2);
} else {
sprintf(str, "%2d%02d", h, m);
Display.setChars(str);
}
}
}
/* vim: set filetype=cpp: */ /* vim: set filetype=cpp: */