как подружить attiny13 и энкодер (шим регулятор яркости)

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
МяуКРВ
Родился
Сообщения: 12
Зарегистрирован: Вс окт 11, 2009 05:28:47
Откуда: Барнаул

как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение МяуКРВ »

Вообщем суть моей проблемы такова. Есть проект он работает и в железе (шим регулятор), но кнопками. А хотелось вместо кнопок подключить энкодер, соответственно крутнул в одну сторону яркость прибавилась и если в обратную сторону убавилась. Моих знаний пока хватает какую нибудь мигалку на cvavr сварганить и всё. Выложил архив и схему проекта(правда не мой), прошу помочь с исходником. Спасибо.
Вложения
ШИМ.rar
исходник для avr studio
(5 КБ) 249 скачиваний
ШИМ.JPG
сама схема проекта
(80.33 КБ) 622 скачивания
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение Gisteresis »

Ну а в чем проблема? В энкодере так же 2 кнопки, только конструктив другой. У него 3 вывода, один общий, на землю, два других твои кнопки.
МяуКРВ
Родился
Сообщения: 12
Зарегистрирован: Вс окт 11, 2009 05:28:47
Откуда: Барнаул

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение МяуКРВ »

Так вроде там нужен обработчик импульсов на энкодер, чтобы пропусков не было при вращении его. Я такое вычитал или я ошибаюсь. А может в исходнике время на дребезг увеличить?
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение Андрей СШ »

Если и потеряется импульс с энкодера, то ничего страшного не произойдёт. Тут главное дребезг отфильтровать.

1. В главном цикле программы (или в прерываниях по таймеру) считается счётчик подавления дребезга.
2. Прерывания настраиваются только на PB1 (а лучше задействовать прерывание INT0 по фронту).
3. В прерывании делается проверка "если задержка истекла и PB1 нажата и PB2 нажата, то вверх и сбросить задержку", "если задержка истекла и PB1 нажата и PB2 не нажата, то вниз и сбросить задержку".
МяуКРВ
Родился
Сообщения: 12
Зарегистрирован: Вс окт 11, 2009 05:28:47
Откуда: Барнаул

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение МяуКРВ »

Может и так, но мой уровень познаний не позволяет это все реализовать, поэтому и прошу помочь. Исходник есть выше в архиве для доработки, но можете свой предложить.
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение Gisteresis »

Если проект простой, то можно без прерываний просто в цикле проверять если кнопка нажата подряд 50..100 раз то цикл завершается и считаем что она нажата. При этом в цикле счетчик увеличиваем до этого значения. Если хотя бы раз проверка прервалась, считаем кнопку не нажатой.

Антидребезг введением задержки
http://avr.ru/beginer/bascom/article2

Внешние прерывания
http://avr-start.ru/?p=883
МяуКРВ
Родился
Сообщения: 12
Зарегистрирован: Вс окт 11, 2009 05:28:47
Откуда: Барнаул

Re: как подружить attiny13 и энкодер (шим регулятор яркости)

Сообщение МяуКРВ »

Выше в архиве есть исходник рабочий, но мне нужно вместо кнопок энкодер подключить. Проект не мой он написае на ассембл. в AVR STUDIO. Посмотрите можно ли его доработать под энкодер вместо кнопок. Спасибо. Можете исходник и на CVAVR выложить доработанный.
Ответить

Вернуться в «Практика»