VFD modular clock firmware
Dependencies: DipCortex-EEprom RTC flw mbed
Diff: main.cpp
- Revision:
- 11:34b344fdec98
- Parent:
- 5:5c073029c416
--- a/main.cpp Fri Feb 20 19:10:34 2015 +0900 +++ b/main.cpp Tue Feb 24 12:23:46 2015 +0000 @@ -59,6 +59,7 @@ // Alarm volatile bool g_alarm_on; volatile bool g_alarming; +volatile bool g_updateFLW = false; void write_vfd_8bit(uint8_t data); void write_vfd_iv18(uint8_t digit, uint8_t segments); @@ -87,18 +88,7 @@ void rtc_tick() { if (haveEEPROM) - strncpy(flwWord, flw.getWord(), 4); - - flwOffset += flwOffsetDirection; - - if (flwOffset <= 0) { - flwOffset = 0; - flwOffsetDirection = 1; - } - else if (flwOffset > display.digits() -4) { - flwOffset = 3; - flwOffsetDirection = -1; - } + g_updateFLW = true; rtc.tick(); } @@ -644,6 +634,23 @@ if (g_alarming) { piezo.play('g'); } + + if (g_updateFLW) + { + g_updateFLW = false; + + strncpy(flwWord, flw.getWord(), 4); + flwOffset += flwOffsetDirection; + + if (flwOffset <= 0) { + flwOffset = 0; + flwOffsetDirection = 1; + } + else if (flwOffset > display.digits() -4) { + flwOffset = 3; + flwOffsetDirection = -1; + } + } wait(0.1); }