Easyelectronics.ru

Электроника для всех
Текущее время: 23 сен 2019, 20:49

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая индикация, захлебнулся в таймерах.
СообщениеДобавлено: 07 окт 2015, 00:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 03 окт 2015, 15:48
Сообщения: 84
Откуда: Краскоярск
Есть stm32f4Discovery, есть блок газоразрядных индикаторов, подключенных к одному дешифратору параллельно.
Схема взята отсюда(только индикаторы другие): http://geektimes.ru/post/257806/
Индикация, как уже было написано динамическая. Вот. Задача управлять яркостью свечения, которая будет настраеваемой, при этом процессор грузить минимально.
Я для этого использовал 2 базовых таймера, настроенных на одинаковую частоту(600Гц - по 100Гц на каждый индикатор), но смещенных по фазе. Первый таймер генерировал прерывания включающие определенную цифру определенного индикатора, прерывание второго таймера выключало этот индикатор. В зависимости от фазы второй таймер давал посветить каждому индикатору или побольше, или поменьше. Все замечательно, фазу только тяжеловато подстраивать, но все работает. Вот только сердце мое подсказывает, что возможности перефирии позволяют мне сделать это попроще. Недавно пришла в голову мысль: один таймер подает ШИМ на какую-нибудь ножку, второй таймер ловит этот шим с другой ножки и генерирует прерывания по восходящему фронту(включить индикатор) и нисходящему фронту(выключить индикатор). В общем, как бы поставленную задачу решили бы вы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая индикация, захлебнулся в таймерах.
СообщениеДобавлено: 07 окт 2015, 00:16 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4273
Откуда: Кемеровская область, Киселевск
Я бы решил легко с помощью ОС

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая индикация, захлебнулся в таймерах.
СообщениеДобавлено: 07 окт 2015, 01:01 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3440
LittleIronMan писал(а):
В общем, как бы поставленную задачу решили бы вы?

Берёшь таймер с блоком захвата-сравнения (capture-compare). В прерывании по переполнению (overflow) включаешь индикатор, а в прерывании по совпадению (compare match) выключаешь... В регистр CCR записываешь требуемую яркость...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая индикация, захлебнулся в таймерах.
СообщениеДобавлено: 07 окт 2015, 01:30 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2619
Откуда: Санкт-Петербург
Э... А что, одним таймером нельзя обойтись?
Я, конечно, не доктор, но видится таймер, который:
1. Выдаёт PWM на какую-то ногу - скажем, A.
2. Вместе с нисходящим фронтом PWM генерит прерывание, по которому мы переключаем цифры: выдаём на один из пинов B0..B3 единичку (какую из ламп включить), на пины C0..C3 (идущие на дешифратор) - очередную цифру.

Единственное - придётся пин A с каждым из B0..B3 объединить диодным И (но если делать open drain - это тривиально).

Почему так? Просто чтобы переключение (работа проца) шло в idle time, и мы не зависели от таймингов.


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

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


Кто сейчас на конференции

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


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB