Технический форум по робототехнике.
ADonis » 22 дек 2010, 14:37
Добрый день всем!
Не совсем робот, но все же электроника
Что-то не нарыл в гугле, хотя, может неверно гуглил.
Собственно тема:
Имеется дисплей из 7-сегментных индикаторов, вывод данных производится таймером. Однако в программе имеется необходимость отключения прерываний. Вот и возникает мерцание индикаторов. Вопрос - как увеличить инертность свечения индикаторов, чтобы избавиться от мерцания?
=DeaD= » 22 дек 2010, 14:38
Инертность это кондёры
ADonis » 22 дек 2010, 14:39
Это я тоже так подумал
А как рассчитывается емкость?
З.Ы. какой оперативный ответ
Чем я люблю этот форум - здесь всегда подскажут
=DeaD= » 22 дек 2010, 14:42
Чтобы рассчитать ёмкость надо вспомнить что такое напряжение, ток, заряд и ёмкость
Myp » 22 дек 2010, 14:44
на 4,7 мкф воткни
или на 47 мкф
или на 470 мкф
какойто точно поможет.
Radist » 22 дек 2010, 14:44
Открою вам страшную тайну - инерционность светодиода на порядки меньше инерционности глаза. Глаз видит светодиод горящим еще около 0,1 секунды после его погашения. Чтобы не было мерцания - надо повышать частоту вывода на индикаторы. 100 Гц на индикатор - никакой глаз не заметит моргания. В вашем случае поможет только отказ от динамической индикации.
Кондеры - это конечно инертность, но не в данном случае. Отключение прерываний портит картину динамической индикации.
ЗЫ. Это чисто мое мнение, не претендую на истину в последней инстанции.
ADonis » 22 дек 2010, 14:47
Ну не могу я отказаться от динамической индикации, тогда весь смысл задумки пропадет
Добавлено спустя 1 минуту 4 секунды:работа и делается как самая простая и дешевая, а отказ от динамики - увеличение числа ног... фигня получается
Radist » 22 дек 2010, 14:50
Вообще-то увеличится не число ног, а число регистров-защелок. Ну вы сами понимаете, что именно паузы при работе динамической индикации и приводят к морганию? Есть два пути: изменить принцип или не допускать этих пауз. Вы отключаете прерывания чтобы что-то сделать. Что именно? Может быть можно это сделать не отключая прерывания?
ADonis » 22 дек 2010, 14:51
Неа, нельзя 1wire...
dccharacter » 22 дек 2010, 14:55
Radist писал(а):Вообще-то увеличится не число ног, а число регистров-защелок. Ну вы сами понимаете, что именно паузы при работе динамической индикации и приводят к морганию? Есть два пути: изменить принцип или не допускать этих пауз. Вы отключаете прерывания чтобы что-то сделать. Что именно? Может быть можно это сделать не отключая прерывания?
А может быть перед отключением прерывания принудительно его сгенерировать и оставить светик горящим на время отключенного прерывания???
=DeaD= » 22 дек 2010, 14:55
Проверьте приоритеты и разрешайте прерывание на 1-wire в прерываниях индикации.
Radist » 22 дек 2010, 15:01
Надеюсь 1-Wire висит на внешнем прерывании? Можно при входе в прерывание от индикации сразу же разрешать глобальные прерывания, поскольку в случае прерывания от таймера нет опасности в нем завязнуть.
Добавлено спустя 1 минуту 26 секунд:dccharacter писал(а):А может быть перед отключением прерывания принудительно его сгенерировать и оставить светик горящим на время отключенного прерывания???
Будет гореть одно знакоместо.
ADonis » 22 дек 2010, 15:05
Короче, я тихо впадаю в онемение... наверное, надо будет поднимать этот вопрос, когда уже выложу всю работу (проектом это назвать язык не поднимется, хотя для меня достижение
), думаю, что решаться это все дело будет программно. А осталось сделать только корпус
Делаться будет на НГ каникулах
Radist » 22 дек 2010, 15:12
Когда я делал термометр на DS1821, я использовал LCD. Красота
Измерил - выдал на экран. Никакой динамической индикации.
ADonis » 22 дек 2010, 15:14
А мне жаль 300 руб... А вот как использовать жк-экраны от других устройств (без контроллера) я не знаю и вообще имеет ли это смысл