Семисегментный индикатор. Вопросы по использованию.

cactous
Offline
Зарегистрирован: 18.11.2013

  Есть проект в котором в loop  есть while который ждет нажание концевика и delay. 

Теперь появилась необходимость добавить регулятор температуры с трехразрядным индикатором. 

Очень не хочется использовать дополнительный  драйвер.  

Как это можно реализовать, чтобы индикация не мешала основной программе. Снимать темературу можно например каждые 200мс в прерывании по таймеру,  а как быть с индикатором?  Ведь ему нужно очень часто подавать импульсы, иначе будет моргать:) 

com
Offline
Зарегистрирован: 06.09.2013

используйте статическую индикацию вместо динамической

msng
Offline
Зарегистрирован: 07.06.2012

если есть "делай", то используйте статическую индикацию через регистры 74595 (т.к. выводов поданобиться 7*3+точка (если нужна)), и выводите на индикатор хоть каждые 200 мс.

а лучше от "делай" избавиться...

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Библиотека вам в помощь

Хоть и помаргивает, например при опросе DHT модуля, но в целом показывает нормально

avm666
Offline
Зарегистрирован: 26.02.2014

Использовать while и delay вообще не рационально. Концевик лучше повесить на прерывание. А тактовые импульсы на смену разряда индикатора можно организовать и по прерыванию таймера, несколько килогерц будет достаточно и не слишком будет тормозить основную программу.

cactous
Offline
Зарегистрирован: 18.11.2013

Решил этот вопрос. Избавился от всех тормозящих программу команд (delay, while), и индикатор работает теперь отлично, никому не мешает. Яркости хватает.