VFD modular clock firmware

Dependencies:   DipCortex-EEprom RTC flw mbed

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);
     }