|
@@ -95,6 +95,7 @@ static void valIncrease(uint8_t * val, uint8_t max);
|
|
|
static void valDecrease(uint8_t * val, uint8_t max);
|
|
|
static void blink(void);
|
|
|
static void setSummerWinterTime(void);
|
|
|
+static void tubeRefresh(void);
|
|
|
#ifdef LAMP_TEST
|
|
|
static void lampTest(void);
|
|
|
#endif // LAMP_TEST
|
|
@@ -331,6 +332,84 @@ static void btnProcess(void) {
|
|
|
} /* end FOR */
|
|
|
}
|
|
|
|
|
|
+static void tubeRefresh(void) {
|
|
|
+ static int cnt = 0;
|
|
|
+
|
|
|
+ /* We start ourselves every 125 ms to update 8 digits in a second. */
|
|
|
+ if (cnt == 0) {
|
|
|
+ RTOS_SetTask(tubeRefresh, 125, 125);
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (cnt) {
|
|
|
+ case 0:
|
|
|
+ cnt = 1;
|
|
|
+ Digit[0] = 0;
|
|
|
+ Digit[2] = 6;
|
|
|
+ Digit[4] = 6;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 1:
|
|
|
+ cnt = 2;
|
|
|
+ Digit[0] = 3;
|
|
|
+ /* Digit[2] = 6;
|
|
|
+ Digit[4] = 6; */
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 2:
|
|
|
+ cnt = 3;
|
|
|
+ Digit[0] = 4;
|
|
|
+ Digit[2] = 7;
|
|
|
+ Digit[4] = 7;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 3:
|
|
|
+ cnt = 4;
|
|
|
+ Digit[0] = 5;
|
|
|
+ /* Digit[2] = 7;
|
|
|
+ Digit[4] = 7; */
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 4:
|
|
|
+ cnt = 5;
|
|
|
+ Digit[0] = 6;
|
|
|
+ Digit[2] = 8;
|
|
|
+ Digit[4] = 8;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 5:
|
|
|
+ cnt = 6;
|
|
|
+ Digit[0] = 7;
|
|
|
+ /* Digit[2] = 8;
|
|
|
+ Digit[4] = 8; */
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 6:
|
|
|
+ cnt = 7;
|
|
|
+ Digit[0] = 8;
|
|
|
+ Digit[2] = 9;
|
|
|
+ Digit[4] = 9;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 7:
|
|
|
+ /* cnt = 8; */
|
|
|
+ cnt = 0;
|
|
|
+ Digit[0] = 9;
|
|
|
+ /* Digit[2] = 9;
|
|
|
+ Digit[4] = 9; */
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ cnt = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cnt == 0) {
|
|
|
+ /* Digit[0] = RTC.Hr >> 4;
|
|
|
+ Digit[2] = RTC.Min >> 4;
|
|
|
+ Digit[4] = RTC.Sec >> 4; */
|
|
|
+ RTOS_DeleteTask(tubeRefresh);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void showTime(void) {
|
|
|
/*
|
|
|
Digit[0] = DIGIT_BLANK;
|
|
@@ -353,6 +432,10 @@ void showTime(void) {
|
|
|
Digit[3] = RTC.Min & 0x0F;
|
|
|
Digit[4] = RTC.Sec >> 4;
|
|
|
Digit[5] = RTC.Sec & 0x0F;
|
|
|
+
|
|
|
+ if (RTC.Sec == 0x0) {
|
|
|
+ tubeRefresh();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void showWDM(void) {
|