Цитата:
Допис від Toha24510
Скажите пожалуйста часы можно корректировать не по секундам , а по десятым доли секунд?И ещё при пропадании питания с последующим появлением его, андруина не запускает каналы которые включены.У меня это L2,CO2,LED, а вот L1 включает.Это можно исправить?Заранее спасибо.
|
Можно попробовать заменить
if(b1&B10000000){
if((1<<(time.dow-1))&b1){ // активная запись и день недели
byte b2 = EEPROM.read(a+1);
if(time.hour == (byte)(b2&B00011111)){ // сравниваем часы
byte b3 = EEPROM.read(a+2);
if(time.min == (byte)(b3&B00111111)){ // сравниваем минути
byte b4 = EEPROM.read(a+3);
С небольшим пересмотра
int T_ON = EEPROM.read(a + 1) * 60 + EEPROM.read(a + 2);
int T_OFF = EEPROM.read(a + 3) * 60 + EEPROM.read(a + 4);
int T_cur = time.hour * 60 + time.min;
if (b1 & B10000000) {
if ((1 << (time.dow - 1))&b1) {
boolean tajmer = false;
if (T_ON < T_OFF) //Проверка на таймера в едно денонощие
{
if (T_cur >= T_ON && T_cur <= T_OFF)
{
tajmer = true;
} else {
tajmer = false;
}
} else { // ако се е сменил деня
if ((T_cur >= T_ON && T_cur <= 2820) || (T_cur >= 0 && T_cur <= T_OFF)) //2820=24часа*60
{
tajmer = true;
} else {
tajmer = false;
}
}
if (tajmer) {