Перейти к содержанию
    

Управление ШИМ нажатием кнопки (STM32L1)

Здравствуйте! В устройстве имеется кнопка с подстветкой , нужно было мне сделать так, чтобы при нажатии кнопки и ее удержании подствека включалась и загоралась сильнее. После отжатия кнопки - подсветка тухнет.

Выполнил я это конечно кривовато, следующим алгоритмом.

 

1. Запустил таймер на 1 мс.

2. Каждую 1мс считываю нажата ли кнопка.

3. Если кнопка нажата, то меняю скважность ШИМ сигнала подсветки, если отжата, то вырубаю подстветку.

 

Но мне кажется, что используя режимы типа Gate Mode либо Trigger Mode можно как то данную штуку выполнить более аппаратным уровнем, чем программно моим алгоритмом.

Может быть дадите наводку. Есть возможность поменять схемотехнику.


Осознаю , что нужно использовать у одного из таймеров Input Direct Mode, повесить подсчет длительности нажатия на данную функцию. 
И как то связать данный счетчик с другим таймером , который рулит ШИМом. Хотелось бы чтобы всякие прерывания минимально были задействованы

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 минуты назад, Mysteo сказал:

Но мне кажется, что используя режимы типа Gate Mode либо Trigger Mode можно как то данную штуку выполнить более аппаратным уровнем, чем программно моим алгоритмом.

А зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да чисто для собственного опыта. В общем похоже напрямую связать длительность нажатия кнопки со скважностью ШИМ без прерываний невозможно. 

Сейчас сделал более оптимизировано перевел таймер в режим Input Capture и если кнопка нажата более 20 мс генерю прерывания. 

Это оптимальнее чем до этого было сделано. Впустую постоянно таймер гонялся и проверялось условие нажата ли кнопка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин , где то допустил ошибку и не правильно режим задал. Думал что настроил чтобы в прерывание входило при удержании ножки в нуле 20мс , а по факту от любого импульса из 1 в 0  прерывание вызывается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...