Добавлено after 34 minutes 30 seconds:
Перепрошил matrixclock_max7219_mod2_atmega8.hex порядок матриц наладился остальное без изменений. Оставлю пока так, большие цифры мне больше нравятся
В main.c в основном цикле вызывается функция checkAlarm() В случае подходящего времени для будильника устанавливается в нужное значение переменная alarmTimer;phoenix75 писал(а):где у вас реализован запуск и звучание будильника.
Код: Выделить всё
// 1 second intervals
if (secTimer) {
secTimer--;
} else {
secTimer = TIME_SEC; // 250
// Temperature
if (sensTimer)
sensTimer--;
if (scrollTimer)
scrollTimer--;
if (alarmTimer)
alarmTimer--;
}
// Beeper
if (beepTimer) {
beepTimer--;
} else {
if (alarmTimer)
beepTimer = TIME_SEC;
}
if ((beepTimer & 0x0E) > 8) {
if (secTimer > TIME_SEC / 2)
PORT(BEEPER) &= ~BEEPER_LINE;
} else {
PORT(BEEPER) |= BEEPER_LINE;
}
Просто ограничение максимальной яркости значением 15, путём обнуления старших четырёх битов.phoenix75 писал(а):Вот эта не понятка eep.brMax &= 0x0F
Он остался в варианте для трёх матриц. На четырёх он и смотрелся не очень, да и не влезали в ATmega8 сразу оба варианта после добавления всех датчиков.phoenix75 писал(а):зря убрали 3-й вариант отображения цифр
Я собрал часики на плате предложенной dark-м : http://radiokot.ru/forum/viewtopic.php? ... start=1000 - в конце июня.hector писал(а):Работают себе часы с марта месяца.
За текущее время ушли вперед на 1.5 минуты
Раз было - "отвалился" где-то на месяц датчик давления, а так как температура снималась с него - перестала отображаться температура дома. Потом вдруг опять появился..
Вопрос к WiseLord:
- можно ли как-то ввести коррекцию в DS3231?
Как показало время - они довольно не точные.
Тут как-то делают: http://radiokot.ru/forum/viewtopic.php? ... 1#p2888811
Подправлю не BMP280, а BMЕ280.Genri5 писал(а): Я собрал еще портативные часы на ардуино с BMP280 и данные с BMP180 практически совпадают, а вложность DHT22 отличантся с BMP280, тоже на 1-цу. DHT22 по температуре и влажности врет на 1-цу.
DHT22-- невысокая точность по температуре, температуру надо ds1820 измерять, это первое. По влажности Вы так вообще хотите того, чего в принципе быть не может-- DHT22 по даташиту влажность +-5%RH -- это означает, что плюс-минус 5 единиц. А вы хотите получить, то на что этот датчик в принципе не способен.Genri5 писал(а):Единственный недостаток, который я заметил - это расхождение показаний температуры датчиков DHT22, BMP180. Хотя они лежат рядом, температура BMP180 точнее на градус. Я собрал еще портативные часы на ардуино с BMP280 и данные с BMP180 практически совпадают, а вложность DHT22 отличантся с BMP280, тоже на 1-цу. DHT22 по температуре и влажности врет на 1-цу.
Понятно, что в "железе", DS3231 с китайских модулей: https://ru.aliexpress.com/item/DS3231-A ... 6237e7875cGenri5 писал(а): Проверил секунды и с секундами тоже все отлично. Так что, hector, ищите причину в вашем "железе".
Если у тебя точность никакая - то не надо писать что все DS3231 такие. У менея таких как у тебя "12 секунд в месяц" нет - пол секунды.hector писал(а):Понятно, что в "железе", DS3231 с китайских модулей: https://ru.aliexpress.com/item/DS3231-A ... 6237e7875cGenri5 писал(а): Проверил секунды и с секундами тоже все отлично. Так что, hector, ищите причину в вашем "железе".
Верно, китайцы их понятия не имеют настраивать. Или может ихняя калибровка "сидит" в микросхеме памяти, что присутствует на платке?
В любом случае, точность этих DS3231 - никакая ..
Такое впечатление, что кварцевый генератор внутри них абсолютно некалиброван.
У меня есть электронные часы на PIC16F628, с возможностью подстройки хода до 0.1 сек в сутки. Так вот они идут намного точнее - за пол-года расхождение 1..2 сек (после подстройки).
Может есть какой алгоритм разовой настройки DS3231 на точный ход?
Вообщем, вот с этого времени: http://radiokot.ru/forum/viewtopic.php? ... 0#p2662790
ушли вперед на 97 секунд, т.е. убегают вперед на 12 секунд в месяц.
Многовато для DS3231 - верно?
У кого еще какая статистика по китайским DS3231?