Страница 1 из 1
помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 19, 2014 12:38:24
ksa69
собственно есть вот такая штука JY-MCU 3208 и есть прошивка с исходниками. никак не вкурю как добавить в прошивку часы на DS1307 и термометр на ds1820.
даташит на матрицу и контроллер ht1637c ниже
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 19, 2014 17:06:55
codenamehawk
Тут все просто :
1. Пишите код, который будет считывать значения с датчиков.
2. Выводите эти значения на дисплей.
Если самому думать лень, наймите программиста.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Чт мар 20, 2014 01:05:02
ksa69
codenamehawk писал(а):Тут все просто :
1. Пишите код, который будет считывать значения с датчиков.
2. Выводите эти значения на дисплей.
Если самому думать лень, наймите программиста.
код есть. код этот прислал мне разработчик вместе с девайсом. но он не работает почему-то. полночи проковырялся. показывает температуру 00,0С и хоть убейся.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Чт мар 20, 2014 21:35:30
ksa69
всем спасибо. разобрался сам с температурой.
терь другой вопрос-- как сюда приделать ds3231 вместо часов на встроенном таймере... точнее как перевести данные с дс-ки в данные для матрицы... с этим китайским исходником уже голова распухла..
Re: помогите подкорректировать прошивку для часов.
Добавлено: Вт мар 25, 2014 14:39:41
ksa69
мда... и тишина)) уже вроде разобрался и с тем и другим. скажите хотя бы как сделать последовательный вывод информации? типа минуту показывает время потом 30 сек температуру? как это организовать на таймерах/прерываниях?
Re: помогите подкорректировать прошивку для часов.
Добавлено: Вт мар 25, 2014 14:49:14
fedyasolder
DS3231 работает точно так же (в плане чтения\записи времени) как и DS1307 (проверил лично). Примеров кода для второй много. Пока писал автор сам разобрался. Вам 12 лет или больше???
Re: помогите подкорректировать прошивку для часов.
Добавлено: Вт мар 25, 2014 14:53:04
ksa69
fedyasolder писал(а):DS3231 работает точно так же (в плане чтения\записи времени) как и DS1307 (проверил лично). Примеров кода для второй много
с ds3231 я разобрался уже. теперь другая проблема-- матрица позволяет вывести только либо время, либо температуру. надо как-то сделать чтобы попеременно выводилось то время, то температура.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Вт мар 25, 2014 15:11:56
fedyasolder
Я бы сделал так. Допустим выплюнули t на отображение. Включаем флаг (0\1) что сейчас у нас показано. Считаем счетчиком до (допустим до 255, зависит от скорости выполнения программы) какого-то числа. Если достигло значение, то обнуляем счетчик и выплевываем время (флаг меняем). Повторяем бесконечно.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 10:40:09
ksa69
fedyasolder писал(а):Я бы сделал так. Допустим выплюнули t на отображение. Включаем флаг (0\1) что сейчас у нас показано. Считаем счетчиком до (допустим до 255, зависит от скорости выполнения программы) какого-то числа. Если достигло значение, то обнуляем счетчик и выплевываем время (флаг меняем). Повторяем бесконечно.
т.е. кол-во итераций главного цикла программы считать? в принципе тоже вариант, только промежутки времени будут не очень стабильными, хотя для отображения это не критично..
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 12:44:28
fedyasolder
1. Как правило в режиме простоя промежутки чаще одинаковы.
2. Применение итераций позволяет повысить скорость отклика от кнопок (например).
Читал в обсуждениях что некоторые часы 'тупят', не срабатывают нормально кнопки и т.д. Это как раз из-за того, что используется задержка (например васиковские wait или waitms). Хотя это время можно использовать более рационально.
Эту конструкцию я повторял с некоторыми изменениями и своей прошивкой именно применив итерации.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 12:58:40
ksa69
fedyasolder писал(а):1. Как правило в режиме простоя промежутки чаще одинаковы.
2. Применение итераций позволяет повысить скорость отклика от кнопок (например).
Читал в обсуждениях что некоторые часы 'тупят', не срабатывают нормально кнопки и т.д. Это как раз из-за того, что используется задержка (например васиковские wait или waitms). Хотя это время можно использовать более рационально.
Эту конструкцию я повторял с некоторыми изменениями и своей прошивкой именно применив итерации.
не получилось. надо на таймере контроллера счетчик делать, т.к. скорость выполнения куска программы в режиме отображения времени сильно отличается от скорости выполнения в режиме отображения температуры.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 13:05:44
fedyasolder
Сделайте 'вложенный цикл'. Т.е. итерация итераций или итерация итераций итераций.
Добавьте паузу в несколько десятков миллисекунд, это не существенно изменит отклик кнопок, но подействует.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 13:10:31
ploop
fedyasolder, а чем вас так таймеры не устраивают? Они специально для этих целей сделаны

Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 15:17:04
ksa69
ploop писал(а):fedyasolder, а чем вас так таймеры не устраивают? Они специально для этих целей сделаны

в меге8 общий предделитель на Т0 и Т1? никак не получается на Т1 сделать задержку на 2 секунды хотя бы
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 15:40:05
fedyasolder
Таймеры обычно используют для первостепенных задач. Свободный таймер лучше если есть перспектива доработать\добавить. Если задача решается без таймера, то лучше так и решить. Таймер - это сурьезно, таймер - это ... огого...

Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 16:02:31
ploop
Ну, если ещё какие-то задачи будут - то да. Хотя на одном таймере можно получить любую сетку частот, распараллелив задачи.
ksa69 писал(а):в меге8 общий предделитель на Т0 и Т1?
Даташит надо смотреть.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср мар 26, 2014 16:47:50
Alexeyslav
Динамическая индикация есть? Почему бы не добавить этот счетчик в цикл индикации. Интервалы стабильные, от программы не зависят... за чем дело встало?
Но я бы конечно сделал классику - машина состояний из двух состояний. Будут два алгоритма, один выводит время а другой температуру и в оба алгоритма прописать условие перехода в другой алгоритм. И делов-то. Событие счетчика секунд у вас есть - вот и считайте в отдельной переменной по его наступлению, там же где и считается основное время. Начался выполнятся алгоритм - обнуляем счетчик и ждем когда насчитает значение 30 - переходим(JMP а не CALL чтобы рекурсию не вызвать) в другой алгоритм где этот счетчик так же обнуляется и ожидается значение 30...
Преимущество подхода - алгортмы отображения независимы, легко добавить в последовательность еще одно состояние и прописать нужные условия перехода из состояния в состояние. В том числе и по нажатию кнопок.
Одним из таких состояний-алгоритмов может быть алгоритм настройки времени, будильника и т.д. Самое главное что требования к этим алгоритмам жестко определены(перечень состояний в которые можно перейти) и их могут разрабатывать разные люди.
Re: помогите подкорректировать прошивку для часов.
Добавлено: Чт мар 27, 2014 19:49:50
ksa69
Alexeyslav писал(а):Динамическая индикация есть? Почему бы не добавить этот счетчик в цикл индикации. Интервалы стабильные, от программы не зависят... за чем дело встало?
нет. динамической нет. есть вывод на матрицу свтодиодную. вот кусок:
offset=1;
font_display(znak , offset);offset +=font_width(znak)+1;//delay_ms(10);
font_display(thou+'0', offset); offset += font_width(thou+'0')+1; //delay_ms(1000);
font_display(hund+'0', offset); offset += font_width(hund+'0')+1; //delay_ms(1000);
font_display('.',offset);offset +=font_width('.')+1;//delay_ms(1000);
font_display(tens+'0', offset); offset += font_width(tens+'0')+1; //delay_ms(1000);
font_display('°',offset);offset +=font_width('°')+1;//delay_ms(10);
это вывод температуры. соответственно в выводе времени совершенно другие переменные и другая анимация..
суть в обещем в том что на индикацию счетчик не привяжешь т.е. замер и вывод температуры-- неделимый кусок. так же обстоит и с другими частями типа времени. считал время-- вывел. другого нет. либо библиотеку вывода на контроллер ht1632c переписывать)) хотя надо попробовать вывод отдельно от измерения сделать.. но я думаю прерывания от таймера, используемого в выводе похерят все задержки в процедуре считывания температуры..
Re: помогите подкорректировать прошивку для часов.
Добавлено: Ср сен 03, 2014 15:31:19
vvsv
Может не много не в тему,но чтобы сделать что нибудь из JY-MCU 3208( больше чем просто часы) надо заменить контроллер на atmega328p и установить ds3231. Только после такого апгрейда ,твори что хочешь .
Изначально JY-MCU 3208 на atmege8 мягко говоря ущемлен.