Джойстик и прерывания

Marts
Marts аватар
Offline
Зарегистрирован: 04.12.2018

Всем привет! Пришла мне в голову идея подключить джойстик к плате используя прерывания. Подскажите, хорошая ли это идея? И еще, для прерывания используются только 2 пина, а у джойстика 3 вывода. Я понимаю, что расстояние передать не получится. Как сгруппировать контакты?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Marts пишет:

Всем привет! Пришла мне в голову идея подключить джойстик к плате используя прерывания. Подскажите, хорошая ли это идея? И еще, для прерывания используются только 2 пина, а у джойстика 3 вывода. Я понимаю, что расстояние передать не получится. Как сгруппировать контакты?

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

У джойстика один выход и это кнопка. Здесь проблем с внешним прерыванием нету.

А как понять прерывания по аналоговым выходам джойстика?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Муж_Долговой пишет:

А как понять прерывания по аналоговым выходам джойстика?

Может он имеет в виду дискретный джойстик или цифровой геймпад, кто ж его знает?

Вообще, вопрос довольно типичный: мне надо "прикрутить" ХЗ какой джойстик, к ХЗ какой плате, используя ХЗ какие прерывания. Как это сделать?

Если отвечать по существу и добросовестно, то ответ может быть только один - ХЗ!

Marts
Marts аватар
Offline
Зарегистрирован: 04.12.2018

Муж_Долговой пишет:

У джойстика один выход и это кнопка. Здесь проблем с внешним прерыванием нету.

А как понять прерывания по аналоговым выходам джойстика?

 


 

У джойстика 3 выхода: отклонение по оси х, по оси у и нажатие на кнопку. Идея в том, чтобы по шевелению ручки джойстика и/или нажатию что-нибудь срабатывало, но не через опрос в программе, а через прерывание. А на плате только 2 пина для прерываний.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Блин, Вы читаете, что Вам пишут? Вот я написал, что Вы нам говорите о "ХЗ какой плате". Вас это никак не напрягло? Может таки расколетесь, что ж там за плата такая секретная?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Marts пишет:

 А на плате только 2 пина для прерываний.

Кто такое сказал? PCINT никуда не делись.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, Дима, мы ж не знаем чё там за плата, ТС-то шифруется как Штирлиц.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

 - нажимаем кнопку на джоистике, подключенную как внешнее прерывание, и ... не отпуская её (или вывесив флаг), шерудим джойстиком. Повторным нажатием кнопки выходим из обработки прерывания. Способ простой с програмной точки зрения, но требует ловкости рук. И кнопка будет занята.

- не используй в скетче delay, 16/2 диспоей и ещё кой чего помелочи ... так и прерывания  могут не понадобиться. Кнопку может даже нужно в прерывания (иногда). А потенциометры зачем?

- P.S. Хотя можно попробовать. Нужно только дополнительно два компоратора (один сдвоеный), два переменных резистора и парочку любых диодов.Компараторы настроить переменными резисторами на "0". Выходы компораторов через диоды соединить к одному пину прерываний. Кнопку - к другому. Аналоговые сигналы с джойстика подключить и к аналоговым пинам. Возможно для устойяивости системы понадобится по два компаратора на ось.

Тогда, при касании джойстика, .компоратор выходит из равновесия, подаёт сигнал на пин прерывания (прикидывается кнопкой), а в обработчике прерываний от этого пина считывать соответствующие аналоговые порты. Выход из прерывания может по millis подобрать по вкусу.

Второй пин прерывания кнопкой джойстика обработать по классической схеме.