Например TDA7294

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

Текущее время: Вс авг 03, 2025 17:30:58

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


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



Начать новую тему Ответить на тему  [ Сообщений: 163 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Пт янв 17, 2014 16:42:57 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Помоему это не очень надежно считать в BCD, проще наверно считать в двоичной форме а приводить к двум разрядам обычным вычитанием - в цикле вычитаем 10 из числа пока число не станет меньше 10, тогда количество итераций даст нам десятки, а то что останется в числе - единицы. С таким подходом проще выполнять манипуляции над числами, а сложный алгоритм возникает только при необходимости вывода на индикатор(если без секунд то это происходит раз в минуту).

Точно такой же алгоритм можно осуществить если у нас есть единый счетчик секунд, преобразовать его сразу в часы(считая сколько раз можно вычесть десятки часов пока число в секундах не станет меньше 10 часов) и т.д. вплоть до секунды.
С таким алгоритмом легко реализовываются таймеры и автоматическое вычисление времени "до события".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Пт янв 17, 2014 22:10:53 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Xatrix писал(а):
попробовал считать раздельно десятки и единицы. HEX получился ещё больше, чем был раньше.

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

Alexeyslav писал(а):
Помоему это не очень надежно считать в BCD, проще наверно считать в двоичной форме а приводить к двум разрядам обычным вычитанием - в цикле вычитаем 10 из числа пока число не станет меньше 10, тогда количество итераций даст нам десятки, а то что останется в числе - единицы.

Считать (в смысле, производить вычисления) действительно проще в двоичной форме, а выводить на индикацию - в двоично-десятичной. Однако, во первых, в часах весь счет сводится к операции инкремента, а основной вес приходится именно на индикацию, и во вторых, если используется DS1307 (лично мне проще навесить литиевую батарейку на RTC, чем городить резервное питание, да и календарь в таком случае добавить не проблема), то время там хранится в BCD (и неспроста наверное, а из тех же соображений) - так что удобнее считать именно в BCD.

Попутно задам вопрос - в моих часах при установке времени производится инкремент минут и часов при нажатой кнопке, потом это сохраняется в RTC. С часами все просто - всегда 24 часа, всегда 60 минут, ну и нулевые секунды. А как быть с календарем? Что будет, если я выставлю кнопками, скажем, 31 февраля 2014 года, и попытаюсь сохранить? Как отнесется к этому DS1307? Молча схавает и в итоге просто будет неверный календарь?

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Сб янв 18, 2014 01:17:28 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
В RTC сделан BCD счет времени именно для удобства его последующего хранения и вывода. Когда понадобится посчитать интервал между двумя заданными моментами времени делать это в BCD крайне неудобно.
Кроме того, такие микросхемы часов могут так же считать время и в простой двоичной форме, этот режим называется "счетчик".

Если календарь имеет автоматическую коррекцию високосного года, да даже если не имеет то скорей всего исправит некорректную дату до большего корректного значения при очередном инкременте, т.е. в начале суток.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Сб янв 18, 2014 01:57:16 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Alexeyslav писал(а):
В RTC сделан BCD счет времени именно для удобства его последующего хранения и вывода. Когда понадобится посчитать интервал между двумя заданными моментами времени делать это в BCD крайне неудобно.

Кроме того, такие микросхемы часов могут так же считать время и в простой двоичной форме, этот режим называется "счетчик".

Согласен.

Но не DS1307.

Но для простых часов это и неважно. К слову сказать, оценивать интервал времени между двумя событиями человеку удобнее и быстрее по обычным аналоговым стрелочным часам. Глядя же на цифровые, мозги требуется напрягать сильнее.

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Вт янв 21, 2014 19:37:44 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 977
Зарегистрирован: Ср май 28, 2008 00:32:54
Сообщений: 7615
Откуда: г. Россия
Рейтинг сообщения: 0
Вот и мой, немного запоздалый новогодний подарочек.
http://radiokot.ru/circuit/digital/home/188/
Я решил светодиодным 7ми сегментным матрицам жизнь дать
и посмотреть как оно будет выглядеть.
Ничего так - не хуже чем газоразряд.
:)

_________________
Очень нравится неон
:) :)) :))) :)) :)
Мой проектик часиков с термометром на любых 6ти газоразрядных лампах + куча функций
Ещё один - попроще
:) :)) :))) :)) :)
Светодиодный проект
:))) :)) :) :)) :)))

My video on youtube nic SLvik78


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Вт янв 21, 2014 19:59:06 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Ничуть не хуже :) Сам раньше воспринимал LED семисегментники как что-то обыденное, неинтересное, и даже пошлое. А оказалось очень даже ничего :) А для страдающих гигантоманией :D так и вообще безальтернативным почти вариантом (хотя можно по старинке набрать сегменты из ламп накаливания).

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 00:30:12 
Сверлит текстолит когтями
Аватар пользователя

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Насколько важно в параметрах проекта в CV AVR устанавливать частоту генератора?
У меня в проекте стоит 4МГц. Вроде всё работает. Но когда пытаюсь выставить 0,032768МГц, компилятор начинает ругаться на функцию delay_us(40). Вроде как ему 40 за много. (Out of range)... :dont_know:
Хватит ли мощности порта контроллера, чтобы раскачать ЗП-1 или придётся ставить ещё и КТ315?

_________________
Изображение
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 01:06:12 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Вообще-то от часового кварца заводится не контроллер, а таймер. Контроллер заводится от внутреннего RC. Который может быть выставлен как раз на 4 МГц. Часовой кварц цепляется на TOSC1 и TOSC2 + кондеры на землю по бокам, и от него заводится один из таймеров, который дает секундные прерывания (ну или 2 Гц если нужны разделительные точки). Софт то твой, или чужой? Авторство в шапке было твое, но сейчас я сильно в этом засомневался :)

Я не знаю, какой ток надо подавать на этот таинственный ЗП-1, смотри его даташит, а порт МК способен выдать на высоком уровне и принять на низком, 40 мА. Общий ток, потребляемый МК по выводам Vcc и GND должен быть не более 300 мА (эти данные относятся к ATMega 8), но ты смотри даташит на свой контроллер.

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 01:38:54 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 1
3П-1 это пьезоэлектрик, от 5 вольт будет совсем тихо, нужен транзистор и индуктивность параллельно излучателю в его коллекторную цепь - в зависимости от добротности индуктивности напряжение на динамике можно запросто раскачать до 30-50В. Индуктивность брать из расчета чтобы не входила в насыщение при минимальной частоте, либо придется управлять скважностью.


Цитата:
0,032768МГц, компилятор начинает ругаться на функцию delay_us(40)


Скорей слишком мало, на такой частоте один NOP будет выполнятся 30мкс, а алгоритм delay имеет в своем составе цикл и рассчитан минимум на десяток тактов - т.е. в твоем случае сможет сгенерировать задержку на такой тактовой частоте от 300мкс и больше.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 01:41:15 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Какой смысл вообще заводить МК на частоте 32 кГц?

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 02:14:05 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 1
С целью минимизации энергопотребления. на 32кГц он будет потреблять еще меньше чем на 4Мгц. В некоторых случаях вообще можно его завести на частоте 1кГц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 03:51:27 
Сверлит текстолит когтями
Аватар пользователя

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Darth Cuauhtemoc писал(а):
Авторство в шапке было твое, но сейчас я сильно в этом засомневался :)

Прошивку писал САМ и ЭТО НЕ ПОДЛЕЖИТ ОБСУЖДЕНИЮ!!! :evil:
Можно сказать, что это мой первый самописный проект для контроллера Attiny2313.
Я сейчас подумал заменить ЗП-1 на что-нить другое. Например на 0,25Вт динамик. Но транзистор придётся в плату впаять...

Увеличил числа в функциях задержек. Теперь перестало ругаться, но в шпротеусе как-то странно ведёт себя точка. Лучше выложу весь проект.
Может опрос кнопок вернуть обратно в основной цикл...

_________________
Изображение
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 08:59:28 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
У вас тактовая частота контроллера реально 32кГц? Может, для маленьких задержек и правда NOP-ы использовать? Да и зачем они тогда при такой низкой тактовой частоте?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 10:30:11 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 1
Xatrix писал(а):
Прошивку писал САМ и ЭТО НЕ ПОДЛЕЖИТ ОБСУЖДЕНИЮ!!! :evil:
...это мой первый самописный...

Извини :) Просто подумалось так, что программа написана в расчете на высокую частоту такта, а ты просто решил поставить часовой кварц. Поэтому такой вывод и сделал.

Все же, я советую тебе заводить контроллер на высокой частоте, на таймер, который считает время, подавать часовую. Тогда не надо будет заботиться о задержках, тактах и всем таком прочем.
Xatrix писал(а):
Может опрос кнопок вернуть обратно в основной цикл...

Ну разумеется, в прерываниях вообще не должно быть задержек, они должны обрабатываться максимально быстро. Если в прерывании требуются "долгие" действия, то прерывание должно только инициировать их выполнение (правда, опрос кнопок сюда не относится - его можно целиком сунуть в главный цикл) - обработчик может просто установить флажок, который будет проверяться в главном цикле, и если установлен, то делаться необходимые действия (только не забыть флажок сбросить потом :) )

Alexeyslav писал(а):
С целью минимизации энергопотребления.

Часы с сетевым питанием - явно не тот случай. Все таки, это светики, а не ЖКИ на батарейках.

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 20:21:19 
Сверлит текстолит когтями
Аватар пользователя

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Да ну наф эту высокую частоту...
Задолбался с подгонкой частоты таймера, чтобы точно считали. Да, это не прожки на С++ и С# под Metro писать...
Будет работать на частоте 32768Гц.
Поубирал все задержки в индикации. Вроде нормально отображает. Интересно, как будет в железе работать. Также поменял с переполнения на совпадение.
Осталось решить вопрос с пищалкой и обработкой события от нажатия кнопок...

_________________
Изображение
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 22:27:48 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
А какое отношение имеет частота тактирования контроллера к скорости счета времени? Ведь 32768 кварц цепляется на 16-битный таймер, и он дает СТАБИЛЬНЫЕ прерывания по переполнению ровно каждую секунду. Независимо от тактовой частоты ядра микроконтроллера.

Кнопки тоже можно опрашивать в прерывании - если примерно 50 раз в секунду просто защелкивать и запоминать состояние кнопок то никакой дребезг не страшен. Причем, стабильности от этого интервала не требуется - 10...100Гц не заметишь никакой разницы.
А потом в основном цикле сравниваешь сохраненное состояние с предыдущим обычной функцией XOR - таким образом детектируются моменты нажатия/отпускания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Ср янв 22, 2014 23:22:48 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я на своих часах не стал асинхронный таймер использовать, так как функций много и о экономии потребления речи не идёт - врубил на 20МГц, и от тактовой считаю время. С программной коррекцией и в домашних условиях идут как вкопанные месяцами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Чт янв 23, 2014 00:09:34 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Xatrix писал(а):
Да ну наф эту высокую частоту...
Задолбался с подгонкой частоты таймера, чтобы точно считали.

Alexeyslav писал(а):
А какое отношение имеет частота тактирования контроллера к скорости счета времени? Ведь 32768 кварц цепляется на 16-битный таймер, и он дает СТАБИЛЬНЫЕ прерывания по переполнению ровно каждую секунду. Независимо от тактовой частоты ядра микроконтроллера.

Абсолютно верно. И совершенно по фэншую - именно для этого такая возможность и предусмотрена в AVR.
ploop писал(а):
Я на своих часах не стал асинхронный таймер использовать, так как функций много

Ну когда ноги TOSC1, TOSC2 уже заюзаны под что-то другое, тогда да.

Самый правильный вариант - заюзать термокомпенсированный генератор, скажем DS32kHz, и подать на вход таймера сигнал с него.
Ну или на вход RTC, если он есть.

Только у этого DS32kHz цена некоммунистическая.

_________________
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Чт янв 23, 2014 00:43:43 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Darth Cuauhtemoc писал(а):
Только у этого DS32kHz цена некоммунистическая.

Во-во, да ещё найти его надо.
Не, как практика показала, если часы дома (колебания температуры минимальны, +-2-3 градуса), то программную коррекцию, и пару месяцев настройки - будут ходить как атомные :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Чт янв 23, 2014 00:54:32 
Мудрый кот
Аватар пользователя

Карма: 25
Рейтинг сообщений: 79
Зарегистрирован: Вт окт 05, 2010 01:08:57
Сообщений: 1800
Рейтинг сообщения: 0
Меньше 3 сек в год ! Как раз как у DS32kHz.

_________________
KIT


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

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


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

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


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

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


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