Часы на светодиодных матрицах с драйверами MAX7219
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Обновление прошивки.
- Исправлен вышеописанный баг редактора с ячейкой EEPROM HOUR_ZERO.
- Изменены некоторые настройки по умолчанию (например, по умолчанию задействованы будильники с понедельника по пятницу).
Исправленный редактор eeprom доступен по прежней сссылке, обновлённая прошивка во вложении.
Ежечасный сигнал пока не отключается (разве что будильник выставить (сам будильник можно не включать) на 23:30. Но вообще да, надо бы добавить эту опцию.
- Исправлен вышеописанный баг редактора с ячейкой EEPROM HOUR_ZERO.
- Изменены некоторые настройки по умолчанию (например, по умолчанию задействованы будильники с понедельника по пятницу).
Исправленный редактор eeprom доступен по прежней сссылке, обновлённая прошивка во вложении.
Ежечасный сигнал пока не отключается (разве что будильник выставить (сам будильник можно не включать) на 23:30. Но вообще да, надо бы добавить эту опцию.
- Вложения
-
- matrixclock-981e1b3.7z
- (23.86 КБ) 349 скачиваний
Re: Часы на светодиодных матрицах с драйверами MAX7219
Спасибо. Работает
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Обновление редактора EEPROM.
- Добавлена возможность установки будильника
- Добавлен редактор BIG и EXTRA шрифтов цифр, хранящихся в EEPROM.
Редактор eeprom доступен по прежней сссылке.

- Добавлена возможность установки будильника
- Добавлен редактор BIG и EXTRA шрифтов цифр, хранящихся в EEPROM.
Редактор eeprom доступен по прежней сссылке.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
Все хорошо, спасибо.
Осталось разобраться с часовым сигналом.
Осталось разобраться с часовым сигналом.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Re: Часы на светодиодных матрицах с драйверами MAX7219
Доброго времени суток, такой вопрос, а как выставить кнопками день недели? часы DS3231 на Mega8 с повернутой матрицейMAX7219.
всё замечательно, но вместо пятницы показывает четверг.
прошивка matrixclock_max7219mod2_atmega8.hex
EEPROM matrixclock_ru.bin
за 07.09.2015
в шпаргалке по кнопкам таковой настройки нет, методом тыка тоже не нашел
всё замечательно, но вместо пятницы показывает четверг.
прошивка matrixclock_max7219mod2_atmega8.hex
EEPROM matrixclock_ru.bin
за 07.09.2015
в шпаргалке по кнопкам таковой настройки нет, методом тыка тоже не нашел
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Обновление прошивки.
- Добавлена возможность отключения ежечасного сигнала
Сигнал по-прежнему действует начиная со времени, на которое выставлен будильник и заканчивая 23:00. Отключить/включить эту возможность можно в редакторе EEPROM или длинным одновременным нажатием кнопок 1 и 3.
- Добавлена возможность отключения ежечасного сигнала
Сигнал по-прежнему действует начиная со времени, на которое выставлен будильник и заканчивая 23:00. Отключить/включить эту возможность можно в редакторе EEPROM или длинным одновременным нажатием кнопок 1 и 3.
- Вложения
-
- matrixclock-1fa6817.7z
- (24.28 КБ) 303 скачивания
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
Теперь все отлично. Спасибо.
Осталось добавить это все на первую страницу.
Осталось добавить это все на первую страницу.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- shura2000
- Вымогатель припоя
- Сообщения: 613
- Зарегистрирован: Пн фев 23, 2015 21:17:29
- Откуда: г. Протвино, МО
Re: Часы на светодиодных матрицах с драйверами MAX7219
Получается, что после какого то обновления автором в епром, нужно будет опять править под себя. Те же шрифты. Может как то сделать сохранение и загрузку шрифтов в редактор?
Re: Часы на светодиодных матрицах с драйверами MAX7219
А исходники вроде же были? Не могу найти.
Нашел, отбой, гитхаб не открывался чот.
Нашел, отбой, гитхаб не открывался чот.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Нет, не получается. Вас никто не заставляет при обновлении прошивки заливать новый EEPROM, теряя свои изменения. Вам никто не мешает сохранить свой EEPROM и редактировать обновлённым редактором именно его.shura2000 писал(а):Получается, что после какого то обновления автором в епром, нужно будет опять править под себя
Re: Часы на светодиодных матрицах с драйверами MAX7219
shura2000, если установить фузе EESAVE, то ЕЕПРОМ вообще не надо будет повторно прошивать, только если измениться структура или будет введен какой то параметр настройки
WiseLord - подскажите где поправить в исходнике
проблема такая
достал собранную матрицу на больших матрицах от предыдущего незавершенного проекта
аноды на MAX7219 разведены правильно, а вот катоды в противоположном порядке
изображение поэтому при любых MOD выводятся зеркально
насколько я разобрался у вас сканирование строк идет снизу вверх, а надо сделать сверху вниз
ткните носом в какой процедуре покопаться, чтоб так сделать
WiseLord - подскажите где поправить в исходнике
проблема такая
достал собранную матрицу на больших матрицах от предыдущего незавершенного проекта
аноды на MAX7219 разведены правильно, а вот катоды в противоположном порядке
изображение поэтому при любых MOD выводятся зеркально
насколько я разобрался у вас сканирование строк идет снизу вверх, а надо сделать сверху вниз
ткните носом в какой процедуре покопаться, чтоб так сделать
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Зеркально вся конструкция целиком, или каждая матрица по-отдельности? Фото можно увидеть?
У меня сейчас готовой конструкции на MAX7219 под рукой нет, проверить не могу, но можете попробовать:
Здесь проверку инвертировать с data = (rotate ? ... на data = (!rotate ? .... Или ниже по коду, if (rotate) менять на if (!rotate).
Также в пределах этой функции max7219SendDataBuf(), в зависимости от используемого "мода", можете попробовать поменять начальные значения переменных ci, ls, rs (с 0x01 на 0x80 или наоборот) и сдвигать их в противоположную сторону (вместо 0x80 и >> делать 0x01 и << и наоборот).
Пробуйте разные комбинации, какая-нибудь должна помочь.
У меня сейчас готовой конструкции на MAX7219 под рукой нет, проверить не могу, но можете попробовать:
Здесь проверку инвертировать с data = (rotate ? ... на data = (!rotate ? .... Или ниже по коду, if (rotate) менять на if (!rotate).
Также в пределах этой функции max7219SendDataBuf(), в зависимости от используемого "мода", можете попробовать поменять начальные значения переменных ci, ls, rs (с 0x01 на 0x80 или наоборот) и сдвигать их в противоположную сторону (вместо 0x80 и >> делать 0x01 и << и наоборот).
Пробуйте разные комбинации, какая-нибудь должна помочь.
Последний раз редактировалось WiseLord Сб сен 12, 2015 08:19:22, всего редактировалось 1 раз.
Re: Часы на светодиодных матрицах с драйверами MAX7219
вот фото, на часах 00:40 и после нажатия кнопок 1 2 3 поворот на часах 00:41


спасибо буду пробывать
спасибо буду пробывать
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
В этой ситуации теоретически должна помочь замена
на
то есть, max7219SwapBits (инверсия порядка битов в байте) применяется к другой половине условия.
Код: Выделить всё
data = (rotate ? max7219SwapBits(buf[8 * j + i]) : buf[8 * (MAX7219_NUM_USED - 1 - j) + i]);Код: Выделить всё
data = (rotate ? buf[8 * j + i] : max7219SwapBits(buf[8 * (MAX7219_NUM_USED - 1 - j) + i]));Re: Часы на светодиодных матрицах с драйверами MAX7219
перестал собираться исходник
на make all пишет
Fatal: '/,' does not exist - don't know how to make it
на make all пишет
Fatal: '/,' does not exist - don't know how to make it
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
А зачем вы туда "/," впёрли? Попробуйте совет выше. В эмуляторе вроде работает.
Re: Часы на светодиодных матрицах с драйверами MAX7219
с путями разобрался все компилируется
помогло так
проблемма теперь при отображении столбца будильника
при установленных пн-пт светиться точка внизу правая
как не устанавливай будильник всегда горит только она
помогло в процедуре
в конце это
заменил на
огромное спасибо за помощь
все работает как надо
помогло так
Код: Выделить всё
void max7219SendDataBuf(uint8_t *buf, uint8_t rotate)
{
uint8_t i, j, data;
uint8_t ci;
/// ci = 0x01;
ci = 0x80;
for (i = 0; i < 8; i++) {
PORT(MAX7219_LOAD) &= ~MAX7219_LOAD_LINE;
for (j = 0; j < MAX7219_NUM_USED; j++) {
#if defined(MAX7219MOD)
data = 0;
uint8_t k;
uint8_t ls, rs;
/// ls = 0x80;
/// rs = 0x01;
ls = 0x01;
rs = 0x80;
for (k = 0; k < 8; k++) {
#if defined(MAX7219MOD2)
if (buf[8 * (!rotate ? j : MAX7219_NUM_USED - 1 - j) + k] & ci)
#else
if (buf[8 * (rotate ? j : MAX7219_NUM_USED - 1 - j) + k] & ci)
#endif
data |= (rotate ? ls : rs);
/// ls >>= 1;
/// rs <<= 1;
ls <<= 1;
rs >>= 1;
}
#else
data = (rotate ? max7219SwapBits(buf[8 * j + i]) : buf[8 * (MAX7219_NUM_USED - 1 - j) + i]);
//// data = (rotate ? buf[8 * j + i] : max7219SwapBits(buf[8 * (MAX7219_NUM_USED - 1 - j) + i]));
#endif
if (rotate)
max7219SendByte(MAX7219_DIGIT_7 - i);
else
max7219SendByte(MAX7219_DIGIT_0 + i);
max7219SendByte(data);
}
PORT(MAX7219_LOAD) |= MAX7219_LOAD_LINE;
/// ci <<= 1;
ci >>= 1;
}
return;
}
проблемма теперь при отображении столбца будильника
при установленных пн-пт светиться точка внизу правая
как не устанавливай будильник всегда горит только она
помогло в процедуре
Код: Выделить всё
void showTime(uint32_t mask)в конце это
Код: Выделить всё
matrixPosData(23, alarmRawWeekday() | hourSignal ? 0x80 : 0x00);заменил на
Код: Выделить всё
matrixPosData(23, alarmRawWeekday() );огромное спасибо за помощь
все работает как надо
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Нижняя точка сейчас индицирует, включена ли "кукушка" (ежечасный сигнал). Видимо, там я и сломал отображение будильника.
Починил.
Починил.
- Вложения
-
- matrixclock-7f8fa47.7z
- (24.3 КБ) 255 скачиваний
Последний раз редактировалось WiseLord Сб сен 12, 2015 10:00:43, всего редактировалось 1 раз.
Re: Часы на светодиодных матрицах с драйверами MAX7219
как только введете параметр кукушки и отображение в последней точке столбца разберемся и поправим
Re: Часы на светодиодных матрицах с драйверами MAX7219
выбор самого большого шрифта в конфигурации 3 матриц надо запретить
иначе отображение часов не влазит в матрицу
иначе отображение часов не влазит в матрицу