Нужна толковая учебка по кнопкам с AVR

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Sergbern
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср ноя 21, 2018 02:29:02

Нужна толковая учебка по кнопкам с AVR

Сообщение Sergbern »

Мяу-мяу! т.е . ЗДРАСТЕ!
Может кто знает, где есть учебный курс по более расширенной работе кнопками с мега8. В сети совсем мало именно по этой теме, и для решения моей задачи не очень-то помогает.
с уважением.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение ARV »

огласите свою задачу, пожалуйста.
я подозреваю, что никто здесь, кроме вас, не представляет, какая такая "расширенная" работа с кнопками может быть.
вроде все разжевано, проглочено, переварено и высрано многократно - дребезг, поллинг, прерывания, матричные кнопки... что еще не охвачено?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Sergbern
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср ноя 21, 2018 02:29:02

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Sergbern »

Например, здесь и в ютубе на народстрим и майчип описывается самое простое: вкл-выкл светодиод и борьба с дребезгом. Поэтому я и обратился за помощью. А моя задача :
1. два канала управления ,в каждом кнопки "+" и "-" , в одном 4 выхода , в другом 3,
2. подали питание, включился выход 1 в обоих каналах,
3. управление по каналам независимое,
4. давим "+" , 1-ый выход потух, включился 2-ой, и каждое нажатие переключает на 1 пункт, на последнем счёт останавливается,
5. давим "-" , счёт идёт в обратную сторону также одно нажатие - одно переключение , доходит до первого выхода и стопорится , т. е. по кольцу не ходит.
Понятно, что задачка простая, но собирать на реверс-счётчиках и логике на сегодняшний день как-то сами понимаете.
Аватара пользователя
Core-X
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Core-X »

Если рассматривать одно нажатие. То алгоритм такой. Нажимается кнопка, подвалятся дребезг, отключается (записывает лог. 0 в порт) 1 выход, небольшая задержка 1-5 миллисекунд, далее все это дело переходит в программный блок второго нажатия, включается (записывает лог. 1 в порт) 2 выход и проверяется отжата ли кнопка. Ну а далее все также со стальными выходами. :tea:
Для связи email: risctronix собака gmail.com
Аватара пользователя
Repytw
Открыл глаза
Сообщения: 54
Зарегистрирован: Вс апр 15, 2012 23:29:00
Откуда: Воронеж

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Repytw »

Возможно моё предложение это идиотизм и меня закидают какахами, но если вам жаль тратить таймеры и использовать поллинг, то вам может помочь эта схема
Изображение

Не могу сказать, что окончательно уверен в её работоспособности, но что-то мне подсказывает, что неработать тут нечему.
Ловим прерывания INT0 или INT1 и сразу проверяем содержимое регистра PIND. Если нажата одна кнопка - делаем ..., если другая...

Добавлено after 1 minute 22 seconds:
Естественно кондёры надо не забыть.
Вложения
123.png
(15.91 КБ) 734 скачивания
Sergbern
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср ноя 21, 2018 02:29:02

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Sergbern »

Добавлено after 1 minute 49 seconds:
Возможно моё предложение это идиотизм и меня закидают какахами, но если вам жаль тратить таймеры и использовать поллинг, то вам может помочь эта схема
Изображение

Не могу сказать, что окончательно уверен в её работоспособности, но что-то мне подсказывает, что неработать тут нечему.
Ловим прерывания INT0 или INT1 и сразу проверяем содержимое регистра PIND. Если нажата одна кнопка - делаем ..., если другая...

Добавлено after 1 minute 22 seconds:
Естественно кондёры надо не забыть.
За схемку спасибо, ещё бы кодик ...
Аватара пользователя
Core-X
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Core-X »

Так у вас 7 выходов в сумме и они все одинаковые по алгоритму работы. А сам алгоритм, я уже описал выше. Вот берите и пишите по нему код.
И прерывания тут нафиг не нужно. Оно только усложнит задачу. Так как прерывания и дребезг контактов, это тот еще геморрой.
Для связи email: risctronix собака gmail.com
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Ivanoff-iv »

:facepalm: диоды то нафига? если так нужны прерывания, - PCINT в помощь, ловишь прерывание с любой ноги его порта а там проверяешь...
по уму - просто регулярно опрашивай кнопки и считай сколько раз оказалось "нажато" подряд...
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
akl
Друг Кота
Сообщения: 4443
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение akl »

У mega8 PCINT нет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение ARV »

вообще говоря, совершенно не понятно, с чего сыр-бор.
самое тупое, но надежное, как лом, решение - поллинг порта, - чем не устраивает?
1. считали состояние порта с кнопками
2. замаскировали лишние биты, чтобы остались только биты с кнопками
3. запомнили этот байт
4. подождали 10-20 мс
5. снова проделали п.1-2 и сравнили результат с запомненным байтом
6. если они равны - в байте будет число, однозначно соответствующее комбинации нажатых кнопок, если не равны - игнорируем это вообще, обнуляя результат
7. вышеперечисленное оформляем в виде отдельной функции, возвращающей код состояния кнопок, и вызываем с нужной периодичностью из главного цикла
8. в главном цикле вызываем функцию, и по её результату делаем то или иное действие, если 0 - не делаем ничего.

куда уж проще-то?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Nijka
Встал на лапы
Сообщения: 96
Зарегистрирован: Ср сен 20, 2017 22:49:53

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение Nijka »

... для решения моей задачи не очень-то помогает.
ARV писал(а):...куда уж проще-то?
Как это куда?! :shock: Еще проще - получить все готовенькое на халяву, вообще не напрягаясь :))) :)))
Sergbern писал(а):За схемку спасибо, ещё бы кодик ...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение BOB51 »

Если по прерываниям - достаточно одной линии возврата и порта контрольного поля конпок.
:roll:
OKF
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Нужна толковая учебка по кнопкам с AVR

Сообщение OKF »

Если по прерываниям - достаточно одной линии возврата и порта контрольного поля конпок.
:roll:

Прочёл 3 раза. ЛИНИЯ возврата? Порт КОНТРОЛЬНОГО ПОЛЯ? Куда я попал?
Sergbern
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср ноя 21, 2018 02:29:02

Re: Нужна толковая учебка по кнопкам с AVR [РЕШЕНО]

Сообщение Sergbern »

Ушёл на учёбу, вернусь не скоро ...
Ответить

Вернуться в «Разные вопросы по МК»