Например TDA7294

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





Текущее время: Сб июл 05, 2025 19:32:37

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


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



Начать новую тему Ответить на тему  [ Сообщений: 163 ]    , , , 4, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Чт янв 23, 2014 01:08:56 
Говорящий с текстолитом

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
ploop писал(а):
Во-во, да ещё найти его надо.

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

Как сделать? Просто никогда не интересовался. Правильно понимаю, что находим уход, скажем, за 30 дней, делим на 30, получаем уход за день и подправляем время на эту величину ежедневно, например, в полночь? А с RTC (там можно только с секундной дискретностью менять время) как сделать - вычислить "обратную" величину, т.е. за какое время часы уходят на 1 сек, и с этим интервалом корректировать на 1 с?

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


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

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

Например, коэффициент 0.1сек/сутки если корректировать по 10мс то для этого нужно это сделать 10 раз за сутки - N = 24*60*60/10 = 8640, для коррекции 6 сек/сутки необходимо 600 раз откорректировать в сутки - N = 24*60*60/600 = 144


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

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

Да, и коррекция обязательно должна быть в меню настройки, а не в коде :)


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

Карма: 3
Рейтинг сообщений: 87
Зарегистрирован: Чт фев 10, 2011 10:22:20
Сообщений: 309
Откуда: Беларусь
Рейтинг сообщения: 0
Darth Cuauhtemoc писал(а):
А с RTC (там можно только с секундной дискретностью менять время) как сделать

Корректируете всегда на целое число секунд. Оставшуюся дробную часть прибавляете к предыдущей дробной части. Если сумма больше единицы, то коррректируете на+1секунду, от суммы отнимаете 1.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Вроде бы как сделал опрос кнопок.
В прерывании проверяется состояние портов кнопок часов и минут. Если нажата, то переключить флаг на 1. В основном цикле сперва проверяется флаг, потом кнопка, после проверка: Не нажата ли кнопка установить будильник. и потом инкремент.
По ходу задержки больше не нужны...

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


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

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
От задержек вообще избавляться надо всеми силами. Если же где-то все таки нужна задержка, скажем, антидребезг, то если есть возможность, выделить один таймер под организацию отложенного выполнения. В главном цикле можно вводить задержки, но моветон.

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


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

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Часы на LED индикаторах.
СообщениеДобавлено: Вт янв 28, 2014 02:34:46 
Друг Кота

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

При строго периодической фиксации состояния кнопок все что может сделать дребезг - это "отложить" момент нажатия кнопки на период одного опроса.


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Как бы с этими фьюзами разобраться?.. какие надо выставлять...
Прошивать буду по ходу через COM порт (4 диода 8 резисторов). Либо тритоном, если получится до него добраться :) ...

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


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Я так понимаю, в Uniprof нужно выставлять такие фьюзы? (SPI и внешний кварц)
И, если прошивка занимает немного памяти, то может в настройках оптимизировать под скорость, а не под размер?

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


Последний раз редактировалось Xatrix Вс фев 02, 2014 15:29:04, всего редактировалось 1 раз.

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

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Довольно глупо ставить часовой кварц, а потом оптимизировать по скорости :) Делай, как делают все - МК запускай от встроенного RC-генератора на высокой частоте, тогда вообще можно забыть об ограничениях по быстродействию, а часовой кварц заводи на таймер. Так будет намного проще. Тем более что схему для этого менять не надо, только софт. Если тактовая частота 1 МГц устраивает, то фьюзы вообще можно не трогать, оставить по умолчанию.

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


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
контроллер начинает работать только после того, как прикоснусь пальцем к подстроечному конденсатору. может с фьюзами напортил? Резонатор и конденсаторы припаяны нормально, проверено...

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


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

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

И судя по всему, минимальная частота кварцевого резонатора с которой контроллер может работать - это 400кГц. Не пытайтесь изобрести велосипед, подавайте частоту 32768 на вход таймера, а не основной частоты(ATTINY2313 не имеет встроенного генератора на входе таймера, поэтому придется его сделать на рассыпухе - например 561ЛЕ5 или 561ЛА7).


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
хорошо. что значит на вход таймера? можно понятнее? так сказать - для нубов... :)) схему менять уже нельзя. но можно изменить прошивку. да и ничего на плату уже не влезет. Она под корпус от Электроники 12-41 заточена.

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


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

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 0
Если у тебя 2313, то без изменения схемы не получится, как сказал Alexeyslav, генератор пришлось бы на рассыпухе делать.
Я то пользуюсь Мегой 8, там схему менять не надо.

Хотя, есть вариант просто перепаять кварц на 4.194 МГц (эта частота является степенью двойки) и поделить его на 16 разрядном таймере, прерывания попрут с частотой 64 Гц (если правильно посчитал), дальше считать программным счетчиком. Можно делить не до 64 Гц, а выше, например до 256 или 512, и сделать на этом же прерывании еще и динамическую индикацию.

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


Последний раз редактировалось Darth Cuauhtemoc Вс фев 02, 2014 18:43:18, всего редактировалось 1 раз.

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

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 1
Тогда прийдется использовать кварц на 4Мгц и задействовать 16-битный таймер в режиме CTC (может ли он так?) для счета до 20000 при тактировании от частоты ядра получим 200Гц прерывания, внутри прерывания инкрементируй еще один программный счетчик который будет считать до 200 сбрасываться и прибавлять секунду к счетчику времени.

Хотя, можно считать до 5000 и использовать прерывание для динамической индикации(перебор знакомест с частотой 1кГц, и обновление всех 4-х цифр с частотой 200Гц), и каждое 4-е прерывание выполнить выше описанный алгоритм.


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Значит ставим кварц на 4МГц. Можно использовать таймер по совпадению, задать число и по прерыванию инкрементировать msec. Вот с подбором числа для совпадения и msec я тогда и запарился... :) Тем более частоту можно подогнать и конденсатором... В контроллере есть фьюз CKDIV8, или лучше его не использовать?.

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


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

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Режим таймера CTC - это счет по модулю N. Чего его парится выбирать-то? максимальный период таймера - 65535. Поэтому выбираем меньшее удобное число N, с учетом того что нам еще динамическую индикацию гонять - надо подобрать такое N чтобы с 4Мгц получить прерывания примерно частотой 800-1000Гц(чтобы 4 разряда перебирать с частотой не менее 200Гц иначе глаза сломаешь смотреть на такое мерцание), да так чтобы еще число можно было удобно дальше поделить до секунд. Я бы выбрал N = 5000 тогда получаем 800 Гц которые делятся на 4 при реализации динамической индикации на 4 разряда. Частоту начала цикла индикации(вывод в первое знакоместо) получаем 200Гц, тут же не отходя от кассы считаем счетчиком из одного регистра (который может считать только до 255) делим эти 200Гц на 200 и получаем событие происходящее раз в секунду. Если бы пришлось делить что-то на число большее 255 нам надо было бы реализовать арифметику на 16 бит и пользоваться парами регистров, зачем нам лишние трудности когда их можно избежать?

Кстати если иногда ставить коэффициент счета таймера N+1 и N-1 можно замедлять и ускорять ход времени, не нужна будет коррекция частоты в железе, можно обойтись программной коррекцией хода. Надо только вычислить необходимо количество прерываний M через которое надо делать N+1 или N-1 на один раз. Можно заранее просчитать все значения M для коэффициентов коррекции от -6сек/сутки до +6сек/сутки с шагом 0.1сек и после сборки часов за 10 дней определить необходимую коррекцию и задать её в часах.


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

Карма: 9
Рейтинг сообщений: 19
Зарегистрирован: Ср мар 10, 2010 22:28:34
Сообщений: 1287
Откуда: Запад Беларуси
Рейтинг сообщения: 0
Конечно, логику понял, но как реализовать в исходнике... Пробовал, не получилось...
Поэтому представляю вариант с переполнением...

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


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

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


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

Карма: 6
Рейтинг сообщений: 21
Зарегистрирован: Вс июн 16, 2013 18:41:45
Сообщений: 1699
Рейтинг сообщения: 1
Пойдет, но если с переполнением, то лучше кварц на 4194304 Гц - это даст ровно 64 мсек между прерываниями. С кварцем ровно 4 МГц будут отставать на 50 с хвостиком секунд в сутки, если я правильно подсчитал (часто путаюсь в таких расчетах) - а это очень много.

Alexeyslav писал(а):
Длительность отдельных фаз будет отличаться из-за того что delay твой будет удлинятся прерываниями, на реальном индикаторе это выльется в виде неравномерного мерцания индикатора.

Xatrix

Совершенно верно, динамическая индикация всегда делается в прерывании - выдал очередную цифру, включил соответствующий ей анодный ключ. До тех пор, пока не придет следующее прерывание - будет гореть данная цифра. Т.е. для каждой цифры получается "задержка" (точнее будет сказать - отводится время) для горения, равная промежутку времени между прерываними. Однако тогда придется либо разобраться с прерываниями по совпадению (CTC), поскольку c прерываниями по переполнению частота индикации будет около 15 Гц :D, либо ставить прескалер clk/64 вместо clk/256. Второй вариант даст приемлемую частоту индикации 61 Гц, но msec должен быть по крайней мере двухбайтным беззнаковым целым - uint16_t, если в библиотеке есть такой тип. Если нет, то unsigned int должен подойти.

В принципе, в данном конкретном случае, где всего одно прерывание, причем быстрое, скорее всего неравномерность свечения будет незаметна на глаз, тем не менее дурных привычек лучше не приобретать с самого начала.

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

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


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

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


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

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


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

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


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