Например TDA7294

Форум РадиоКот • Просмотр темы - Часы на светодиодных матрицах с драйверами MAX7219
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс июл 27, 2025 22:10:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1849 ]     ... , , , 28, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 24, 2015 15:15:06 
Вымогатель припоя
Аватар пользователя

Карма: 6
Рейтинг сообщений: 119
Зарегистрирован: Пн фев 23, 2015 21:17:29
Сообщений: 613
Откуда: г. Протвино, МО
Рейтинг сообщения: 0
А может из-за того что на самой плате датчика стоят сопротивления подтяжки и на модуле RTC стоят сопротивления?
А температуру более менее нормально показывает...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 24, 2015 18:35:58 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
dt_andrew писал(а):
сообщите пожалуйста о результатах
Как и ожидалось, подобного глюка не наблюдается. Выводятся показания одного DS18B20, температуры/давления BMP180, температуры/влажности DHT22 (дефолтный eeprom) бегущей строкой, после чего адекватно отображается время с будильниками. По дате тоже без проблем.

Сколько у Вас, кстати, датчиков подвешено, насколько длинная строка в буфер кладётся?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 24, 2015 23:32:44 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
всех по одному 1820 BMP180 DHT22 - спасибо, завтра буду менять контроллер


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вт авг 25, 2015 00:20:05 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Для очистки совести перед перепаиванием попробуйте ещё на других файлах eeprom этот эффект выловить. Я у себя на белорусском языке проверял.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вт авг 25, 2015 14:02:06 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Чудеса, загрузил ЕЕПРОМ английский - проблемы с индикацией будильника нет ( 1 час работало)
загрузил ЕЕПРОМ беларусский - проблемы с индикацией будильника нет ( 1 час работало)
аналогично украинский
загрузил снова русский, чудеса! работает уже пол дня все отлично
это я натренировал что ли ЕЕПРОМ :shock:

upd: рано обрадовался, проблемма вновь проявилась через 12 час работы

посмотрел код функции alarmRawWeekday()
не понятны
rawWeekday >>= 1;
rawWeekday |= 0x40; - заметьте это и есть та злощастная 1 которая при определенных ситуациях вылазит

поправил так
Код:
int8_t alarmRawWeekday(void)
{
   int8_t rawWeekday = 0x00;
   uint8_t i;

   for (i = 0; i <= ALARM_SUN - ALARM_MON; i++) {
//      rawWeekday >>= 1;
      if (*((int8_t*)&alarm.mon + i))
//         rawWeekday |= 0x40;
         rawWeekday |= (1 << i);
   }

   return rawWeekday;
}

идея - устанавливаем 1 только в том дне на который установлено
2 часа полет нормальный - окончательно сообщу завтра когда более суток проработают
в моем варианте - четкая проверка - установлено пишем 1 в соответствующий бит дня недели

upd2:
почти сутки работы - с моими исправлениями глюка не наблюдается
плохо что его отловить не просто, он может проявится и через 5 мин, так и через 12 часов
потестим еще пару дней,
для очистки совести прошил старый вариант - посмотрю когда вылезет

upd3: глюк со старой прошивкой вылез через 25 мин
прошил свою - тестим до понедельника, чтобы сделать окончательно вывод


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт авг 28, 2015 08:07:11 
Вымогатель припоя
Аватар пользователя

Карма: 6
Рейтинг сообщений: 119
Зарегистрирован: Пн фев 23, 2015 21:17:29
Сообщений: 613
Откуда: г. Протвино, МО
Рейтинг сообщения: 0
В последней прошивке вместо "Пятница" - " Пiтница"


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт авг 28, 2015 11:08:16 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Ничего подобного.

Изображение

dt_andrew писал(а):
не понятны
rawWeekday >>= 1;
rawWeekday |= 0x40; - заметьте это и есть та злощастная 1 которая при определенных ситуациях вылазит

В цикле 7 раз (от 0 до 6, от понедельника до воскресенья) делаем сдвиг переменной rawWeekday, изначально пустой, устанавливая 6-й бит при необходимости (0b01000000 = 0x40). В итоге после всех битов понедельник (если будильник заведён) окажется младшим (0b00000001), воскресенье - старшим (0b01000000).
По идее, этот вариант равносилен Вашему. Раньше, кстати, так и было, но теперешний вариант компилируется в более компактный код, поэтому и использован.
Код:
             сдвиг на 1    добавление 0x40
i=0 => 0x00000000 => 0x00000000 => 0x01000000 (пн+)
i=1 => 0x01000000 => 0x00100000 => 0x01100000 (вт+)
i=2 => 0x01100000 => 0x00110000 => 0x01110000 (ср+)
i=3 => 0x01110000 => 0x01111000 => 0x01111000 (чт+)
i=4 => 0x01111000 => 0x00111100 => 0x01111100 (пт+)
i=5 => 0x01111100 => 0x00111110 => 0x00111110 (сб-)
i=6 => 0x00111110 => 0x00011111 => 0x00011111 (вс-)
                                      вспчсвп


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт авг 28, 2015 15:16:58 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
очень доходчиво, но почему то при определенных условиях выдается неверный результат
если бы ваш код был не верен, всегда бы было неправильно
а тут непонятно может и через 5 мин вылезти может через день

сейчас уже 3 день с моим кодом проблеммы нет
я не настаиваю - применять или нет - решать вам


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт авг 28, 2015 23:03:26 
Вымогатель припоя
Аватар пользователя

Карма: 6
Рейтинг сообщений: 119
Зарегистрирован: Пн фев 23, 2015 21:17:29
Сообщений: 613
Откуда: г. Протвино, МО
Рейтинг сообщения: 0
Значит у меня опять епром глюкнул


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Сб авг 29, 2015 05:23:57 
Нашел транзистор. Понюхал.

Зарегистрирован: Пн фев 04, 2008 12:38:54
Сообщений: 151
Откуда: Шахты
Рейтинг сообщения: 0
выложите скрин для понипрог фузоов для меги 8.......


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Сб авг 29, 2015 09:59:26 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
пипец, что творится с JY-MCU-3208
после 4 дневной безупречной работы стало при выводе бегущей строкой выводить
"года 23.8 С, температура 737 мм. рт. ст, давление 43.9% КПа влажность"
похоже опять на слет ЕЕПРОМ

вкл выкл не помогает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Сб авг 29, 2015 11:40:03 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Пробовали FUSE ставить в -U lfuse:w:0x24:m -U hfuse:w:0xd1:m? Т.е., настроить на 8МГц + уровень BODLEVEL=4В?

Я на других своих проектах сталкивался с повреждением EEPROM при отключенном BODLEVEl или с уровнем 2.7В. Суть в том, что когда напряжение питания снимается, есть риск каких-то случайных выбросов сигналов внутри контроллера во время чтения (даже не записи!) EEPROM, которые могут включить цикл записи в EEPROM. Поэтому теперь сразу ставлю этот уровень повыше, чтобы подобные выбросы исключались как можно раньше (уже на уровне 4В контроллер уходит в RESET, до возможного появления этих паразитных сигналов).

А проект этот чувствителен к повреждениям EEPROM, так как там хранятся все текстовые строки. Небольшой сбой - и все они смещаются не пойми как. Зато недостаток этот компенсируется возможностью языки разные использовать.

У себя на вышеуказанных настройках, кстати, я сбоев EEPROM не наблюдаю - ни на MAX7219, ни на HT1632. Хотя выключаю питание каждый день, уходя на работу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Сб авг 29, 2015 11:47:41 
Первый раз сказал Мяу!

Зарегистрирован: Чт авг 29, 2013 10:16:34
Сообщений: 37
Откуда: Иркутск
Рейтинг сообщения: 0
dt_andrew писал(а):
... стало при выводе бегущей строкой выводить
"года 23.8 С, температура 737 мм. рт. ст, давление 43.9% КПа влажность"
похоже опять на слет ЕЕПРОМ

Было такое при нескольких отключениях и включениях питания. Прошил фьюзы brown-out detection enabled [BODEN] и BODLEVEL=0 brown-out detection level at VСС=4.0 V и сбой EEPROM прекратился.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Сб авг 29, 2015 13:39:20 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
прошил фузы как рекомендовали
перепрошил флеш и еепром
спасибо, все восстановилось как надо, поглядим


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вс авг 30, 2015 23:04:08 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Интересное дело - утром (воскресенье) будильник разбудил в 7 часов. Хотя вроде не наводил. Проверил - действительно, установлен был на воскресенье. Снял настройку, поставил для контроля режим маленького шрифта (с секундами и днями недели)

Вечером увидел горящую точку в воскресенье, пропавшую после снятия питания. Считывание eeprom показывает, что будильник не был взведён на воскресенье. То есть, на старте будильники вычитываются, а потом уже где-то в ОЗУ происходит сбой. При каких условиях - непонятно, какой-то неуловимый баг. По коду-то всё вроде правильно, но где-то ведь он взводится.

Возможно, какие-то гонки в прерываниях, когда прерывание выдёргивает контроллер на половине текущей операции. Попробую проследить это всё в течение нескольких дней, самому стало интересно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 31, 2015 15:59:03 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
3 день полет нормальный - точка в воскр. не вылазит
размышления - если есть подозрение что при вызове процедуры alarmRawWeekday() происходит какое то прерывание и портит картину в ОЗУ, то может просто поставить
cli() в начале и
sei()
в конце - 2 байта всего


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 31, 2015 21:12:31 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Может и так. Хотя можно и макрос ATOMIC_BLOCK попробовать.

Я тут другой вариант сейчас тестирую - эту функцию и переменную в ней не int8_t, а uint8_t сделал. По размеру прошивки полностью идентичные получаются, но разница в содержимом их ровно в один байт.

Появилось у меня просто предположение, что пока крутится этот цикл, заполняющий переменную битами - днями недели, может возникнуть прерывание. В прерывании могут поменятся некоторые служебные биты, в том числе, бит C (флаг заёма/переполнения) регистра SREG. После чего, по выходу из прерывания, эта функция продолжает работать в уже несколько изменившихся условиях, и этот флаг может влиять на дальнейшие сдвиги.

Это только предположение, но пока пару часов код с заменой int8_t на uint8_t работает вроде бы без сбоев. Предлагаю Вам тоже проверить такой вариант для статистики. Всё-таки почти 20 байт экономии :).


Вложения:
matrixclock_ht1632_atmega8.hex.7z [8.24 KiB]
Скачиваний: 215
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн авг 31, 2015 23:52:24 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ставлю на тест ваш вариант - через пару дней сообщу результат

1 день работы - полет нормальный - тестирую дальше


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср сен 02, 2015 15:31:04 
Мявтор!
Аватар пользователя

Карма: 16
Рейтинг сообщений: 43
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Сообщений: 2057
Откуда: Челябинск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
2 день полет нормальный

в плане улучшения функционала мысли
автоповтор на + - кнопки (вроде сами хотели сделать)
переменная в ЕЕПРОМ - коррекции показаний давления - у меня врет на 5 единиц в минус

с точкой будильника похоже можно фиксить и включать в основную прошивку

Спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср сен 02, 2015 15:45:26 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
У меня тоже 2 дня нормально. Казалось бы, банальная замена int8_t на uint8_t, разница в итоговой прошивке в один байт - а глюка нет. Исправление уже в git.

Коррекцию показаний давления чисто для себя можете и сами пока сделать. Хотя идея, в целом, неплохая, можно выделить ячейки в eeprom для коррекции датчиков.

Кстати, откуда уверенность в занижении на 5мм показаний? Я на narodmon.ru смотрел - мои результаты вроде похожи на то, что у людей в регионе. Кстати, на каком этаже меряете? Каждые 10 метров ведь на 1мм давление падает.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1849 ]     ... , , , 28, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y