помогите подкорректировать прошивку для часов.

Обсуждаем контроллеры компании Atmel.
Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

собственно есть вот такая штука JY-MCU 3208 и есть прошивка с исходниками. никак не вкурю как добавить в прошивку часы на DS1307 и термометр на ds1820.
даташит на матрицу и контроллер ht1637c ниже
Вложения
3208clock_DS3231.pdf
(27.86 КБ) 221 скачивание
jy-mcu_mega8.zip
(8.61 КБ) 181 скачивание
Реклама
Вымогатель припоя
Сообщения: 547
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

Тут все просто :
1. Пишите код, который будет считывать значения с датчиков.
2. Выводите эти значения на дисплей.

Если самому думать лень, наймите программиста.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

codenamehawk писал(а):Тут все просто :
1. Пишите код, который будет считывать значения с датчиков.
2. Выводите эти значения на дисплей.

Если самому думать лень, наймите программиста.
код есть. код этот прислал мне разработчик вместе с девайсом. но он не работает почему-то. полночи проковырялся. показывает температуру 00,0С и хоть убейся.
HT1632C_3208clock_new.rar
(70.82 КБ) 174 скачивания
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

всем спасибо. разобрался сам с температурой.
терь другой вопрос-- как сюда приделать ds3231 вместо часов на встроенном таймере... точнее как перевести данные с дс-ки в данные для матрицы... с этим китайским исходником уже голова распухла..
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

мда... и тишина)) уже вроде разобрался и с тем и другим. скажите хотя бы как сделать последовательный вывод информации? типа минуту показывает время потом 30 сек температуру? как это организовать на таймерах/прерываниях?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Ср май 01, 2013 13:53:56
Откуда: с пальмы в Рио-Инженейро

Сообщение fedyasolder »

DS3231 работает точно так же (в плане чтения\записи времени) как и DS1307 (проверил лично). Примеров кода для второй много. Пока писал автор сам разобрался. Вам 12 лет или больше???
Последний раз редактировалось fedyasolder Вт мар 25, 2014 14:53:57, всего редактировалось 1 раз.
электропримат паяю даже лёжа...
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

fedyasolder писал(а):DS3231 работает точно так же (в плане чтения\записи времени) как и DS1307 (проверил лично). Примеров кода для второй много
с ds3231 я разобрался уже. теперь другая проблема-- матрица позволяет вывести только либо время, либо температуру. надо как-то сделать чтобы попеременно выводилось то время, то температура.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Ср май 01, 2013 13:53:56
Откуда: с пальмы в Рио-Инженейро

Сообщение fedyasolder »

Я бы сделал так. Допустим выплюнули t на отображение. Включаем флаг (0\1) что сейчас у нас показано. Считаем счетчиком до (допустим до 255, зависит от скорости выполнения программы) какого-то числа. Если достигло значение, то обнуляем счетчик и выплевываем время (флаг меняем). Повторяем бесконечно.
электропримат паяю даже лёжа...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

fedyasolder писал(а):Я бы сделал так. Допустим выплюнули t на отображение. Включаем флаг (0\1) что сейчас у нас показано. Считаем счетчиком до (допустим до 255, зависит от скорости выполнения программы) какого-то числа. Если достигло значение, то обнуляем счетчик и выплевываем время (флаг меняем). Повторяем бесконечно.
т.е. кол-во итераций главного цикла программы считать? в принципе тоже вариант, только промежутки времени будут не очень стабильными, хотя для отображения это не критично..
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Ср май 01, 2013 13:53:56
Откуда: с пальмы в Рио-Инженейро

Сообщение fedyasolder »

1. Как правило в режиме простоя промежутки чаще одинаковы.
2. Применение итераций позволяет повысить скорость отклика от кнопок (например).
Читал в обсуждениях что некоторые часы 'тупят', не срабатывают нормально кнопки и т.д. Это как раз из-за того, что используется задержка (например васиковские wait или waitms). Хотя это время можно использовать более рационально. Эту конструкцию я повторял с некоторыми изменениями и своей прошивкой именно применив итерации.
электропримат паяю даже лёжа...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

fedyasolder писал(а):1. Как правило в режиме простоя промежутки чаще одинаковы.
2. Применение итераций позволяет повысить скорость отклика от кнопок (например).
Читал в обсуждениях что некоторые часы 'тупят', не срабатывают нормально кнопки и т.д. Это как раз из-за того, что используется задержка (например васиковские wait или waitms). Хотя это время можно использовать более рационально. Эту конструкцию я повторял с некоторыми изменениями и своей прошивкой именно применив итерации.

не получилось. надо на таймере контроллера счетчик делать, т.к. скорость выполнения куска программы в режиме отображения времени сильно отличается от скорости выполнения в режиме отображения температуры.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Ср май 01, 2013 13:53:56
Откуда: с пальмы в Рио-Инженейро

Сообщение fedyasolder »

Сделайте 'вложенный цикл'. Т.е. итерация итераций или итерация итераций итераций. :)))
Добавьте паузу в несколько десятков миллисекунд, это не существенно изменит отклик кнопок, но подействует.
электропримат паяю даже лёжа...
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

fedyasolder, а чем вас так таймеры не устраивают? Они специально для этих целей сделаны :)
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение ksa69 »

ploop писал(а):fedyasolder, а чем вас так таймеры не устраивают? Они специально для этих целей сделаны :)
в меге8 общий предделитель на Т0 и Т1? никак не получается на Т1 сделать задержку на 2 секунды хотя бы
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Ср май 01, 2013 13:53:56
Откуда: с пальмы в Рио-Инженейро

Сообщение fedyasolder »

Таймеры обычно используют для первостепенных задач. Свободный таймер лучше если есть перспектива доработать\добавить. Если задача решается без таймера, то лучше так и решить. Таймер - это сурьезно, таймер - это ... огого... :)))
электропримат паяю даже лёжа...
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Ну, если ещё какие-то задачи будут - то да. Хотя на одном таймере можно получить любую сетку частот, распараллелив задачи.
ksa69 писал(а):в меге8 общий предделитель на Т0 и Т1?
Даташит надо смотреть.
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Динамическая индикация есть? Почему бы не добавить этот счетчик в цикл индикации. Интервалы стабильные, от программы не зависят... за чем дело встало?

Но я бы конечно сделал классику - машина состояний из двух состояний. Будут два алгоритма, один выводит время а другой температуру и в оба алгоритма прописать условие перехода в другой алгоритм. И делов-то. Событие счетчика секунд у вас есть - вот и считайте в отдельной переменной по его наступлению, там же где и считается основное время. Начался выполнятся алгоритм - обнуляем счетчик и ждем когда насчитает значение 30 - переходим(JMP а не CALL чтобы рекурсию не вызвать) в другой алгоритм где этот счетчик так же обнуляется и ожидается значение 30...
Преимущество подхода - алгортмы отображения независимы, легко добавить в последовательность еще одно состояние и прописать нужные условия перехода из состояния в состояние. В том числе и по нажатию кнопок.
Одним из таких состояний-алгоритмов может быть алгоритм настройки времени, будильника и т.д. Самое главное что требования к этим алгоритмам жестко определены(перечень состояний в которые можно перейти) и их могут разрабатывать разные люди.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

Сообщение 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 переписывать)) хотя надо попробовать вывод отдельно от измерения сделать.. но я думаю прерывания от таймера, используемого в выводе похерят все задержки в процедуре считывания температуры..
Встал на лапы
Аватара пользователя
Сообщения: 128
Зарегистрирован: Ср фев 01, 2012 20:45:47
Откуда: Киров

Сообщение vvsv »

Может не много не в тему,но чтобы сделать что нибудь из JY-MCU 3208( больше чем просто часы) надо заменить контроллер на atmega328p и установить ds3231. Только после такого апгрейда ,твори что хочешь .
Изначально JY-MCU 3208 на atmege8 мягко говоря ущемлен.
Ответить

Вернуться в «AVR»