diff --git a/firmware/nixieClock_2_v1.6/0_data.ino b/firmware/nixieClock_2_v1.6/0_data.ino index 61c6f43..5f593a9 100644 --- a/firmware/nixieClock_2_v1.6/0_data.ino +++ b/firmware/nixieClock_2_v1.6/0_data.ino @@ -51,6 +51,7 @@ boolean currentDigit = false; int8_t changeHrs, changeMins; boolean lampState = false; boolean anodeStates[] = {1, 1, 1, 1}; +boolean started = false; const uint8_t CRTgamma[256] PROGMEM = { 0, 0, 1, 1, 1, 1, 1, 1, diff --git a/firmware/nixieClock_2_v1.6/1_setup.ino b/firmware/nixieClock_2_v1.6/1_setup.ino index b373307..95ecd21 100644 --- a/firmware/nixieClock_2_v1.6/1_setup.ino +++ b/firmware/nixieClock_2_v1.6/1_setup.ino @@ -1,5 +1,5 @@ void setup() { - //Serial.begin(9600); +// Serial.begin(9600); // случайное зерно для генератора случайных чисел randomSeed(analogRead(6) + analogRead(7)); @@ -44,10 +44,12 @@ void setup() { EEPROM.put(0, FLIP_EFFECT); EEPROM.put(1, BACKL_MODE); EEPROM.put(2, GLITCH_ALLOWED); + EEPROM.put(3, DOT_MODE); } EEPROM.get(0, FLIP_EFFECT); EEPROM.get(1, BACKL_MODE); EEPROM.get(2, GLITCH_ALLOWED); + EEPROM.get(3, DOT_MODE); /*if (EEPROM.read(100) != 66) { // проверка на первый запуск. 66 от балды EEPROM.write(100, 66); diff --git a/firmware/nixieClock_2_v1.6/2_loop.ino b/firmware/nixieClock_2_v1.6/2_loop.ino index d8cfb01..f76c8d6 100644 --- a/firmware/nixieClock_2_v1.6/2_loop.ino +++ b/firmware/nixieClock_2_v1.6/2_loop.ino @@ -1,5 +1,11 @@ void loop() { - if (dotTimer.isReady()) calculateTime(); // каждые 500 мс пересчёт и отправка времени + if (dotTimer.isReady()) { + calculateTime(); // каждые 500 мс пересчёт и отправка времени + if (!started) { + burnIndicators(); + started = true; + } + } if (newTimeFlag && curMode == 0) flipTick(); // перелистывание цифр dotBrightTick(); // плавное мигание точки backlBrightTick(); // плавное мигание подсветки ламп diff --git a/firmware/nixieClock_2_v1.6/bright.ino b/firmware/nixieClock_2_v1.6/bright.ino index aace228..88b0cd7 100644 --- a/firmware/nixieClock_2_v1.6/bright.ino +++ b/firmware/nixieClock_2_v1.6/bright.ino @@ -43,7 +43,9 @@ void dotBrightTick() { dotBrightCounter = 0; } } - if (dotBrightCounter > 0) { + if (DOT_MODE == 0) { + setPWM(DOT, dotBrightCounter); + } else if (DOT_MODE == 1 && dotBrightCounter > 0) { setPWM(DOT, getPWM_CRT(dotBrightCounter)); } } diff --git a/firmware/nixieClock_2_v1.6/buttonsSettings.ino b/firmware/nixieClock_2_v1.6/buttonsSettings.ino index 2adf0b1..bcc65ae 100644 --- a/firmware/nixieClock_2_v1.6/buttonsSettings.ino +++ b/firmware/nixieClock_2_v1.6/buttonsSettings.ino @@ -71,6 +71,12 @@ void buttonsTick() { EEPROM.put(1, BACKL_MODE); } + // переключение мигания точки + if (btnR.isHolded()) { + if (++DOT_MODE >= 2) DOT_MODE = 0; + EEPROM.put(3, DOT_MODE); + } + // переключение глюков if (btnL.isHolded()) { GLITCH_ALLOWED = !GLITCH_ALLOWED; diff --git a/firmware/nixieClock_2_v1.6/nixieClock_2_v1.6.ino b/firmware/nixieClock_2_v1.6/nixieClock_2_v1.6.ino index 74582f2..727bc10 100644 --- a/firmware/nixieClock_2_v1.6/nixieClock_2_v1.6.ino +++ b/firmware/nixieClock_2_v1.6/nixieClock_2_v1.6.ino @@ -73,6 +73,11 @@ byte BACKL_MODE = 0; // 1 - постоянный свет // 2 - выключена +// эффекты мигания +byte DOT_MODE = 0; +// 0 - мигание с плавным угасанием +// 1 - обычное мигание + // ======================= ЯРКОСТЬ ======================= #define NIGHT_LIGHT 1 // менять яркость от времени суток (1 вкл, 0 выкл) #define NIGHT_START 23 // час перехода на ночную подсветку (BRIGHT_N)