Serzh2000, а можете скинуть НЕХ файл, попробую прошить напрямую.
Какая версия компилятора?
ардуино 1.8.5 , но я не думаю что в этом проблема.
давайте порассуждаем:
глюк выскакивает на на единицах минут начнем там капать
Спойлер
void loop(){ //
startTime=millis(); //
getRTCDateTime(); // Получаем значения времени и даты
if(secFr==0){ //
h1=hour/10; // записываем десятки часов
h0=hour%10; // еденицы часов
m1=minute/10; // десятки минут
m0=minute%10; // еденицы минут
s1=second/10; // десятки секунд
s0=second%10; // еденицы секунд
d1=day/10; // десятки дней
d0=day%10; // еденицы дней
mn1=month/10; // десятки месяца
mn0=month%10; // еденицы месяца
y1=(year-2000)/10; // десятки года
y0=(year-2000)%10; // еденицы года
} //
if(second!=lastSec){ // проверка начала новой секунды
lastSec=second; // в переменную сатрой секунды устанавливаем значение новой секунды
oldMillis = nov; // в начале новой секунды сбрасываем в "0"
shag = 0; // в начале новой секунды сбрасываем в "0"
secFr=0; // в начале новой секунды сбрасываем в "0"
} else secFr++; // далее просто счетчик циклов
dots=(secFr<20)? 1:0; // dots - меняет значение каждые 0,5 сек (период 1 секунда)
dots2=(second%2)? 1:0; // dots2 - меняет значение при смене четных и не четных секунд (период 2 секунды)
temp=readDS18B20(); // Считываем значение температуры считали значения времени из РТС и сохранили (выделено жёлтым)
Спойлер
if (m0 != lastm0) showDigit( m0 * 12 + shag, 12, dig4x8q);
else showDigit(m0, 12, dig4x8); (m0 != lastm0)- проверяем изменилась цифра или нет если изменилась то есть m0 ! не равно lastm0 , то вырисовываем
цифру, если равно то просто высвечиваем цифру целиком.
что из этого следует то ли ардуина китайская бракованная, то ли RTC часы реального времени.
как проверить?
1. давайте попробуем поменять местами секунды и минуты
Спойлер
if (s0 != lasts0){showDigit( s0 * 12 + shag, 17, dig3x7q);} // s0 * 12 + q - номер строки в масиве dig3x7q (смотрим вкладку "fonts.h")
else showDigit(s0, 28, dig3x7s); // s0 - номер строки в масиве dig3x7s (смотрим вкладку "fonts.h")
if (s1 != lasts1) showDigit( s1 * 12 + shag, 12, dig3x7q); //24- позиция экрана с которой начинать печать
else showDigit(s1, 24, dig3x7s); //24- позиция экрана с которой начинать печать
if (m0 != lastm0) showDigit( m0 * 12 + shag, 28, dig4x8q); // dig3x7q - указатель на масив данных (смотрим вкладку "fonts.h")
else showDigit(m0, 17, dig4x8); // dig4x8 - указатель на масив данных (смотрим вкладку "fonts.h")
if (m1 != lastm1) showDigit( m1 * 12 + shag, 24, dig4x8q); // (m1 != lastm1)- проверяем изменилась цифра или нет2. RTC если есть заменить может в цифру ошибки кидает и из за этого постоянно m0 ! не равно lastm0
- Вложения
-
- вместо минут секунды.zip
- (168.59 KiB) Скачиваний: 272
-
- chasy_matrichex.zip
- (26.74 KiB) Скачиваний: 288
-
- минуты и секунды.zip
- (168.84 KiB) Скачиваний: 306