как подружить attiny13 и энкодер (шим регулятор яркости)
как подружить attiny13 и энкодер (шим регулятор яркости)
Вообщем суть моей проблемы такова. Есть проект он работает и в железе (шим регулятор), но кнопками. А хотелось вместо кнопок подключить энкодер, соответственно крутнул в одну сторону яркость прибавилась и если в обратную сторону убавилась. Моих знаний пока хватает какую нибудь мигалку на cvavr сварганить и всё. Выложил архив и схему проекта(правда не мой), прошу помочь с исходником. Спасибо.
- Gisteresis
- Друг Кота
- Сообщения: 4732
- Зарегистрирован: Ср сен 18, 2013 10:08:26
- Откуда: Санкт-Петербург
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Ну а в чем проблема? В энкодере так же 2 кнопки, только конструктив другой. У него 3 вывода, один общий, на землю, два других твои кнопки.
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Так вроде там нужен обработчик импульсов на энкодер, чтобы пропусков не было при вращении его. Я такое вычитал или я ошибаюсь. А может в исходнике время на дребезг увеличить?
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Если и потеряется импульс с энкодера, то ничего страшного не произойдёт. Тут главное дребезг отфильтровать.
1. В главном цикле программы (или в прерываниях по таймеру) считается счётчик подавления дребезга.
2. Прерывания настраиваются только на PB1 (а лучше задействовать прерывание INT0 по фронту).
3. В прерывании делается проверка "если задержка истекла и PB1 нажата и PB2 нажата, то вверх и сбросить задержку", "если задержка истекла и PB1 нажата и PB2 не нажата, то вниз и сбросить задержку".
1. В главном цикле программы (или в прерываниях по таймеру) считается счётчик подавления дребезга.
2. Прерывания настраиваются только на PB1 (а лучше задействовать прерывание INT0 по фронту).
3. В прерывании делается проверка "если задержка истекла и PB1 нажата и PB2 нажата, то вверх и сбросить задержку", "если задержка истекла и PB1 нажата и PB2 не нажата, то вниз и сбросить задержку".
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Может и так, но мой уровень познаний не позволяет это все реализовать, поэтому и прошу помочь. Исходник есть выше в архиве для доработки, но можете свой предложить.
- Gisteresis
- Друг Кота
- Сообщения: 4732
- Зарегистрирован: Ср сен 18, 2013 10:08:26
- Откуда: Санкт-Петербург
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Если проект простой, то можно без прерываний просто в цикле проверять если кнопка нажата подряд 50..100 раз то цикл завершается и считаем что она нажата. При этом в цикле счетчик увеличиваем до этого значения. Если хотя бы раз проверка прервалась, считаем кнопку не нажатой.
Антидребезг введением задержки
http://avr.ru/beginer/bascom/article2
Внешние прерывания
http://avr-start.ru/?p=883
Антидребезг введением задержки
http://avr.ru/beginer/bascom/article2
Внешние прерывания
http://avr-start.ru/?p=883
Re: как подружить attiny13 и энкодер (шим регулятор яркости)
Выше в архиве есть исходник рабочий, но мне нужно вместо кнопок энкодер подключить. Проект не мой он написае на ассембл. в AVR STUDIO. Посмотрите можно ли его доработать под энкодер вместо кнопок. Спасибо. Можете исходник и на CVAVR выложить доработанный.