|
@@ -75,7 +75,7 @@ void init()
|
|
|
|
|
|
void showWatch()
|
|
|
{
|
|
|
- static uint8_t oldHour, oldMinute, old_si;
|
|
|
+ static uint8_t old_si = 0xFF;
|
|
|
static time_t oldTime;
|
|
|
|
|
|
Time = SystemClock.now();
|
|
@@ -127,21 +127,8 @@ void showWatch()
|
|
|
// Новая секунда
|
|
|
oldTime = Time;
|
|
|
|
|
|
- // Обновление индикаторов
|
|
|
- if (oldMinute != dt.Minute)
|
|
|
- {
|
|
|
- oldMinute = dt.Minute;
|
|
|
-
|
|
|
- MAX7219_writeData(MAX7219_DIGIT3, dt.Minute / 10);
|
|
|
- MAX7219_writeData(MAX7219_DIGIT4, dt.Minute % 10);
|
|
|
-
|
|
|
- if (oldHour != dt.Hour)
|
|
|
- {
|
|
|
- oldHour = dt.Hour;
|
|
|
- MAX7219_writeData(MAX7219_DIGIT0, dt.Hour / 10);
|
|
|
- MAX7219_writeData(MAX7219_DIGIT1, dt.Hour % 10);
|
|
|
- }
|
|
|
- }
|
|
|
+ // Запланируем обновление индикаторов
|
|
|
+ showHighTimer.initializeMs(10, showTime).startOnce();
|
|
|
|
|
|
switch(dt.Second / 15)
|
|
|
{
|
|
@@ -166,40 +153,40 @@ void showWatch()
|
|
|
switch (si)
|
|
|
{
|
|
|
case 0:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 1:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
case 2:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 3:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
case 4:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 5:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
case 6:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 7:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
case 8:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 9:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
case 10:
|
|
|
- showLowTimer.initializeMs(10, showTemperature).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showTemperature).startOnce();
|
|
|
break;
|
|
|
case 11:
|
|
|
- showLowTimer.initializeMs(10, showHumidity).startOnce();
|
|
|
+ showLowTimer.initializeMs(20, showHumidity).startOnce();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -211,18 +198,33 @@ void showWatch()
|
|
|
*/
|
|
|
void showTime(void)
|
|
|
{
|
|
|
- // уберём ведущий ноль у часов
|
|
|
- if (dt.Hour >= 9)
|
|
|
- {
|
|
|
- MAX7219_writeData(MAX7219_DIGIT0, dt.Hour / 10);
|
|
|
- }
|
|
|
- else
|
|
|
+ static uint8_t oldHour = 0xFF, oldMinute = 0xFF;
|
|
|
+
|
|
|
+ if (oldMinute != dt.Minute)
|
|
|
{
|
|
|
- MAX7219_writeData(MAX7219_DIGIT0, MAX7219_CHAR_BLANK);
|
|
|
+ oldMinute = dt.Minute;
|
|
|
+
|
|
|
+ MAX7219_writeData(MAX7219_DIGIT3, dt.Minute / 10);
|
|
|
+ MAX7219_writeData(MAX7219_DIGIT4, dt.Minute % 10);
|
|
|
+
|
|
|
+ if (oldHour != dt.Hour)
|
|
|
+ {
|
|
|
+ oldHour = dt.Hour;
|
|
|
+
|
|
|
+ // уберём ведущий ноль у часов
|
|
|
+ if (dt.Hour < 10)
|
|
|
+ {
|
|
|
+ MAX7219_writeData(MAX7219_DIGIT0, MAX7219_CHAR_BLANK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MAX7219_writeData(MAX7219_DIGIT0, dt.Hour / 10);
|
|
|
+ }
|
|
|
+ MAX7219_writeData(MAX7219_DIGIT1, dt.Hour % 10);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
- MAX7219_writeData(MAX7219_DIGIT1, dt.Hour % 10);
|
|
|
- MAX7219_writeData(MAX7219_DIGIT3, dt.Minute / 10);
|
|
|
- MAX7219_writeData(MAX7219_DIGIT4, dt.Minute % 10);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -270,25 +272,16 @@ void setBright(void)
|
|
|
// приведём к диапазону 0-16
|
|
|
uint8_t bright = (1024 - system_adc_read()) >> 6;
|
|
|
|
|
|
- // растянем диапазон значений 10-16
|
|
|
- if (bright > 14)
|
|
|
- {
|
|
|
- bright = 14;
|
|
|
- }
|
|
|
- if (bright >= 7)
|
|
|
+ // переведём диапазон значений 9-16/1 в 1-15/2
|
|
|
+ if (bright > 8)
|
|
|
{
|
|
|
- bright = ( (bright - 7) * 2 ) + 1;
|
|
|
+ bright = ( (bright - 9) * 2 ) + 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
bright = 1;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- if (bright < 1) { bright = 1; }
|
|
|
- if (bright > 15) { bright = 15; }
|
|
|
- */
|
|
|
-
|
|
|
MAX7219_writeData(MAX7219_MODE_INTENSITY, bright);
|
|
|
}
|
|
|
|