Перейти к публикации

Рекомендованные сообщения

Опубликовано:

Запаял три педальных платы.Всё работает.

post-92962-0-93152900-1494581649_thumb.jpg

  • Поддерживаю! 1
Опубликовано:

Кто-нибудь может подсказать как работает функция оси-в-кнопки ?

Опубликовано:

Кто-нибудь может подсказать как работает функция оси-в-кнопки ?

При достижении указанного значения оси(в %) срабатывает назначенная кнопка.

Например у И-16 при оборотах от 92%(в игре) начинается форсажный режим плюс еще надо нажать кнопку форсажа. Так вот указываем

ось оборотов, проценты для срабатывания и нужную кнопку. И при увеличении оборотов до максимума у нас автоматом включается форсаж.

  • Поддерживаю! 1
Опубликовано:

Кто-нибудь может подсказать как работает функция оси-в-кнопки ?

Например: Когда я тяну на себя РУС то у меня происходит выпуск закрылок почти в самом конце хода оси Тангажа. 

В конфигураторе  (на картинке) прописана кнопка которая выпускает закрылки.Далее прописана ось.Далее прописано когда будет происходить включение кнопки.

post-92962-0-68266600-1494587661_thumb.jpg

  • Поддерживаю! 1
Опубликовано: (изменено)

Ахтунг! Читеры!)

Никакой не ахтунг.

Очень своевременный пост.

Перевод министика РУД Кота в режим кнопок очень полезен ввиду отстойной прямой совместимости  контроллера и єтого министика в качестве осей

Кое-кто тут даже тему мутил по переоснащению Котов с  помощью 4КНР за бешенные гроши

Изменено пользователем =FA=CATFISH
Опубликовано:

Давно не шерстил форум, а здесь нарвался на анонс в ВКБ по поводу ручек РУСа MCG. Интересно,сможет ли ММджой состыковаться и полноценно работать с этой ручкой?

Опубликовано:

Давно не шерстил форум, а здесь нарвался на анонс в ВКБ по поводу ручек РУСа MCG. Интересно,сможет ли ММджой состыковаться и полноценно работать с этой ручкой?

Без переделок с версией для TM Warthog. Хотя я не думаю что адаптировать другие версии будет кардинально сложно.
Опубликовано:

про прямое подключение продукции ВКБ.

у ВКБ свой цифровой протокол связи: или они поделяться информацией как его использовать или его "ломать".

если ручка через переходник будет совместима с ТМ то сюда подключение просто в лоб.

Никакой не ахтунг.

Очень своевременный пост.

Перевод министика РУД Кота в режим кнопок очень полезен ввиду отстойной прямой совместимости контроллера и єтого министика в качестве осей

Кое-кто тут даже тему мутил по переоснащению Котов с помощью 4КНР за бешенные гроши

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

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

Да я в этой теме уже постил схему усилителя. 

Пока еще руки не дотянулись до изготовления.

Но не уверен, что даже после ее изготовления буду пользоваться этими осями.

Так, что преобразование их в кнопки кажется более привлекательным  

Опубликовано:

Подскажите, а возможно ли на MMJoy2 собрать (даже не знаю, как это назвать) "матрицу со сдвиговом регистром"?

Т.е. например если есть диодная матрица кнопок 4х8 (которой нужно 4+8=12 пинов), то благодаря одному сдвиг.регистру 74HC165 (на входы которого "повесить" 8 "столбцов" матрицы) получить конфигурацию, которой нужно будет уже всего 4+3=7 пинов (4 пина "строк" матрицы и 3 пина, нужные для работы регистра).

Т.е. что-то типа такого: чтобы в цикле поочерёдно включалась очередная ножка "строки" B0-B3 и опрашивался регистр.

7r0w8H989m.jpg

 

 

И второй вопрос: Не планирует ли кто заказывать в Китае печатные платы шилда для pro-micro и TLE5010?

Или может быть в Москве у кого-нибудь есть лишние печатки для двух TLE5010? :) С радостью бы приобрёл.

Опубликовано:

Подскажите, а возможно ли на MMJoy2 собрать (даже не знаю, как это назвать) "матрицу со сдвиговом регистром"?

Т.е. например если есть диодная матрица кнопок 4х8 (которой нужно 4+8=12 пинов), то благодаря одному сдвиг.регистру 74HC165 (на входы которого "повесить" 8 "столбцов" матрицы) получить конфигурацию, которой нужно будет уже всего 4+3=7 пинов (4 пина "строк" матрицы и 3 пина, нужные для работы регистра).

Т.е. что-то типа такого: чтобы в цикле поочерёдно включалась очередная ножка "строки" B0-B3 и опрашивался регистр.

7r0w8H989m.jpg

 

 

И второй вопрос: Не планирует ли кто заказывать в Китае печатные платы шилда для pro-micro и TLE5010?

Или может быть в Москве у кого-нибудь есть лишние печатки для двух TLE5010? :) С радостью бы приобрёл.

Ничего не понял, как и зачем :unsure:  Сдвиговые регистры подключаются по SPI требуется 5 контактов из которых три общих и к диодной матрице они не имеют ни какого отношения. Сдвиговые регистры подключаются последовательно, у вас указано 8 регистров к ним можно подключить 64 кнопки. И при этом будут задействованы только 5 контактов на платке контроллера: GND, VCC, CSK это общие и еще два например F4, F5.

Опубликовано:

Ничего не понял, как и зачем :unsure:  Сдвиговые регистры подключаются по SPI требуется 5 контактов из которых три общих и к диодной матрице они не имеют ни какого отношения. Сдвиговые регистры подключаются последовательно, у вас указано 8 регистров к ним можно подключить 64 кнопки. И при этом будут задействованы только 5 контактов на платке контроллера: GND, VCC, CSK это общие и еще два например F4, F5.

Ну может надо зачем-то человеку.

Судя по прошивальщику можно организовать две ветки сдвиговых регистров. Насколько я понял из регистров разных типов регистров в каждой из них.

Сам не пробовал.

 

Подскажите, а возможно ли на MMJoy2 собрать (даже не знаю, как это назвать) "матрицу со сдвиговом регистром"?

Т.е. например если есть диодная матрица кнопок 4х8 (которой нужно 4+8=12 пинов), то благодаря одному сдвиг.регистру 74HC165 (на входы которого "повесить" 8 "столбцов" матрицы) получить конфигурацию, которой нужно будет уже всего 4+3=7 пинов (4 пина "строк" матрицы и 3 пина, нужные для работы регистра).

Т.е. что-то типа такого: чтобы в цикле поочерёдно включалась очередная ножка "строки" B0-B3 и опрашивался регистр.

7r0w8H989m.jpg

 

 

И второй вопрос: Не планирует ли кто заказывать в Китае печатные платы шилда для pro-micro и TLE5010?

Или может быть в Москве у кого-нибудь есть лишние печатки для двух TLE5010? :) С радостью бы приобрёл.

Могу предложить отмеченные платки 

post-56549-0-40618500-1494773506_thumb.jpg

Опубликовано:

Ну может надо зачем-то человеку.

Судя по прошивальщику можно организовать две ветки сдвиговых регистров. Насколько я понял из регистров разных типов регистров в каждой из них.

Сам не пробовал.

Можно, это может быть две ветки но в каждой ветке должны быть регистры одного типа. То есть одна ветка с 4021, а другая с 74HC165 или две ветки с 74HC165(4021).

Плюс еще и матрицу кнопок можно сделать.

Могу предложить отмеченные платки 

attachicon.gif44.jpg

Это платки для модификации твиста?

Опубликовано:

Можно, это может быть две ветки но в каждой ветке должны быть регистры одного типа. То есть одна ветка с 4021, а другая с 74HC165 или две ветки с 74HC165(4021).

Плюс еще и матрицу кнопок можно сделать.

Пардон неправильно напечатал - действительно в каждой ветке - одинаковые регистры

Опубликовано:

Спасибо за ответы на вопрос про ось-в-кнопку!

Следующий вопрос - требуется ли обвязка энкодера (резисторы, конденсаторы) при подключении через сдвиговый регистр?

Опубликовано:

Спасибо за ответы на вопрос про ось-в-кнопку!

Следующий вопрос - требуется ли обвязка энкодера (резисторы, конденсаторы) при подключении через сдвиговый регистр?

Через сдвиговые регистры ничего не надо. Да и резисторы/конденсаторы нужны для датчиков, а для кнопок диоды.

  • Поддерживаю! 1
Опубликовано:

Ничего не понял, как и зачем :unsure: Сдвиговые регистры подключаются по SPI требуется 5 контактов из которых три общих и к диодной матрице они не имеют ни какого отношения. Сдвиговые регистры подключаются последовательно, у вас указано 8 регистров к ним можно подключить 64 кнопки. И при этом будут задействованы только 5 контактов на платке контроллера: GND, VCC, CSK это общие и еще два например F4, F5.

Вообще, человек все правильно спрашивает. В его варианте действительно выходит экономия и места в устройстве и используемых пинов. Правда он забыл, что для работы 165ых понадобится еще "защелка", по которой будут данные забираться, а это +1 пин контроллера.

8 регистров, да еще и каждый на отдельной плате, занимают достаточно много места. Вариант организации матрицы с таким же количеством кнопок потребует всего одного регистра.

Опубликовано:

Через сдвиговые регистры ничего не надо. Да и резисторы/конденсаторы нужны для датчиков, а для кнопок диоды.

А ВКБ советуют ставить RC фильтр на энкодеры при подключении к их платам расширения, основанных на регистрах 4021. Повышает четкость срабатывания.
Опубликовано: (изменено)

Ничего не понял, как и зачем :unsure:  Сдвиговые регистры подключаются по SPI требуется 5 контактов из которых три общих и к диодной матрице они не имеют ни какого отношения. Сдвиговые регистры подключаются последовательно, у вас указано 8 регистров к ним можно подключить 64 кнопки. И при этом будут задействованы только 5 контактов на платке контроллера: GND, VCC, CSK это общие и еще два например F4, F5.

"Зачем" - чтобы сэкономить на ножках pro-micro при подключении матрицы кнопок.

Я не знал, что число, которое я указал как "8", - это количество последовательно подключенных регистров (я подумал, что это фактическое количество кнопок). Если так, то оно, конечно же, должно там быть "1" (т.е. один регистр).

 

Попробую ещё раз объяснить смысл "желаемого". Имеется матрица кнопок в 4 строки и 8 столбцов. Если подключать её именно как "матрицу", то на pro-micro придётся занять 4+8=12 ножек.

Но раз "столбцы" матрицы - это обычные цифровые выходы (выдают "0" либо "1"), то теоретически их можно подключить к входам D0-D7 регистра 74HC165. И тогда от pro-micro для опроса столбцов понадобилось бы всего 3 ножки (CSK, и те два, которые укажу в конфигураторе; VCC и GND в расчёт не берём) вместо 8. Более того, если планируется использовать TLE501х (а я бы это тоже хотел), то CSK уже будет задействован (он как я понимаю, общий для всех SPI-устройств). И вообще получается, что только 2 ножки нужны будут => экономия в 6 ножек.

 

Соответственно проблема только одна: умеет ли контроллер опрашивать регистр, переключая "строки" матрицы? Ведь тут нужно поочерёдно включать одну их четырёх строк матрицы и только потом читать по SPI регистр - чтобы т.о. были опрошены кнопки этой строки матрицы.

Изменено пользователем dim666
Опубликовано:

"Зачем" - чтобы сэкономить на ножках pro-micro при подключении матрицы кнопок.

Я не знал, что число, которое я указал как "8", - это количество последовательно подключенных регистров (я подумал, что это фактическое количество кнопок). Если так, то оно, конечно же, должно там быть "1" (т.е. один регистр).

 

Попробую ещё раз объяснить смысл "желаемого". Имеется матрица кнопок в 4 строки и 8 столбцов. Если подключать её именно как "матрицу", то на pro-micro придётся занять 4+8=12 ножек.

Но раз "столбцы" матрицы - это обычные цифровые выходы (выдают "0" либо "1"), то теоретически их можно подключить к входам D0-D7 регистра 74HC165. И тогда от pro-micro для опроса столбцов понадобилось бы всего 3 ножки (CSK, и те два, которые укажу в конфигураторе; VCC и GND в расчёт не берём) вместо 8. Более того, если планируется использовать TLE501х (а я бы это тоже хотел), то CSK уже будет задействован (он как я понимаю, общий для всех SPI-устройств). И вообще получается, что только 2 ножки нужны будут => экономия в 6 ножек.

 

Соответственно проблема только одна: умеет ли контроллер опрашивать регистр, переключая "строки" матрицы? Ведь тут нужно поочерёдно включать одну их четырёх строк матрицы и только потом читать по SPI регистр - чтобы т.о. были опрошены кнопки этой строки матрицы.

Не совсем так:

Ноги MISO, MOSI, SCK - общие для данной конкретной шины, для всех устройств которые на ней расположены. При этом все устройства на шине располагают последовательно.

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

Чтобы определить, что можно подключать последовательно, что параллельно - надо смотреть документацию на конкретные устройства, т.к. кроме всего прочего надо учитывать еще и протокол обмена.

По совместимости ТЛЕ и 165ых при использовании на одной шине, к сожалению, ничего сказать не могу, т.к. с ТЛЕшками я не работал.

Не забывайте, что 165ым необходим сигнал на защелкивание данных в регистре, а это еще одна нога в контроллере. Можно конечно решить это чисто схемотехникой - но легко получить вместо актуальных данных какой-нибудь левый мусор, если не учтешь алгоритм обработки данных контроллером.

Опубликовано:

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

Опубликовано:

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

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

Опубликовано:

Так, чисто для примера, плата с регистрами для не очень большой кучи кнопок и чуть большей кучи светодиодов. Ширина - с короткую сторону листа А5. Чуток поменьше. Это конечно больше по размеру, чем потребуется автору исходного вопроса, но все же это нужно учитывать при проектировании устройства.

 

post-11519-0-47001300-1494789101_thumb.jpg

Опубликовано: (изменено)

Здравствуйте, Виталий!

 

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

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

Попробую на абстрактом языке объяснить, чего хочется.

В случае с "матрицей кнопок" обрабатывалось бы наверно как-то так (строки матрицы на пинах B0,B1,B2,B3; столбцы - на D0,D1,D2,D3,D7,B4,B5):

rowPins[] = {B0,B1,B2,B3}; // пины строк матрицы
columnPins[] = {D0,D1,D2,D3,D7,B4,B5}; // пины столбцов матрицы
buttonsPressed = 0; // битовый набор нажатых кнопок
for (int i = 0; i < rowPins.length; i++) {
  turnOnPin(row[i]); // включаем очередную строку
  for (int j = 0; j < columnPins.length; j++) {
    value = isPinTurnOn(columnPins[j]); // опрашиваем столбец матрицы
    buttonsPressed |= (value << (columnPins.length * i + j));
  }
  turnOffPin(row[i]); // выключаем строку
}
return buttonsPressed;
А хочется такого (строки матрицы на тех же пинах B0,B1,B2,B3; регистр 74HC165, на который подключены столбцы, - на пинах F4 и F5):

rowPins[] = {B0,B1,B2,B3}; // пины строк матрицы
buttonsPressed = 0; // битовый набор нажатых кнопок
for (int i = 0; i < rowPins.length; i++) {
  turnOnPin(row[i]); // включаем очередную строку
  value = readByteFromRegister(F4, F5); // опрашиваем единственный регистр с CS на F4, DATA на F5
  buttonsPressed |= (value << 8); // сдвигаем на 8 бит и дописываем в набор
  turnOffPin(row[i]); // выключаем строку
}
return buttonsPressed;
Итого вместо 4+8=12 пинов на pro-micro нужно всего 4+2=6 (ну и ещё SPI-SCK нужен; но он итак будет задействован, если например TLE501x будет использоваться).

А ведь если у кого-то будет матрица с ещё бОльшим количеством столбцов, то потребуются все те же 6 пинов, ведь при последовательном соединении регистров им нужны будут все те же 2 пина...

 

можно поставить просто цепочкой столько их сколько нужно кнопок?

А как мне поможет цепочка регистров? У меня нет выходов с 32 кнопок. У меня есть матрица 4х8 - т.е. 4 провода строк и 8 проводов столбцов. Как их "разложить" на входы регистров? Это ж нужно тогда ломать "электронику матриц"... Изменено пользователем dim666
Опубликовано:

У меня нет выходов с 32 кнопок. У меня есть матрица 4х8 - т.е. 4 провода строк и 8 проводов столбцов. Как их "разложить" на входы регистров? Это ж нужно тогда ломать "электронику матриц"...

Разложить на входы можно, хотя и придется немного повозиться.

 

Берем 4 регистра. Защелку каждого из них вешаем на соответствующую строку (согласовав логические уровни так, как требуется для работы логики). А столбцы параллелим на все регистры одинаково. Тогда обычным для матрицы способом защелкиваем значения в соответствующих регистрах, после чего считываем эти значения стардартным для регистров способом. Даже прошивку править не надо. Чисто электрическим путем все решается.

Забыл добавить, что собственно электроника самой матрицы при этом остается в целости и сохранности.

Опубликовано: (изменено)

dim666 "мае рацыю" (бел) - матрица в комбинации с регистром имеет некоторый смысл. Такое решение используется в Гладиаторе и его "младших собратьях".

Причем это не мешает наращиванию  регистров в этой линии.

Изменено пользователем Alex_Oz
Опубликовано: (изменено)

=V=Heromant, это действительно вариант (логически только нужно будет инвертировать защёлки в строки, т.к. "активная" строка та, на которой "0"; столбцы подтянуты на "+5").
Но это ведь будет 4 отдельных регистра (не последовательных), раз у каждого будет своя защёлка SR-CS.
Разве такое можно сконфигурировать? В моём MMJoySetup.exe можно только 2 регистра указать.

Изменено пользователем dim666
Опубликовано:

=V=Heromant, это действительно вариант (логически только нужно будет инвертировать защёлки в строки, т.к. "активная" строка та, на которой "0"; столбцы подтянуты на "+5").

Но это ведь будет 4 отдельных регистра (не последовательных), раз у каждого будет своя защёлка SR-CS.

Разве такое можно сконфигурировать? В моём MMJoySetup.exe можно только 2 регистра указать.

Зачем отдельные? Они объединяются последовательно в одну цепь. СS для всех один и тот же, должен быть активным пока ведется работа с матрицей и цепочкой.

Что касается обработки именно ММДжоем - лучше спросить Виталия. В своих устройствах я решил бы эту задачку за пять минут добавив пару-тройку строк кода там где надо...

Опубликовано:

Уважаемые специалисты! Подскажите, пожалуйста, новичку.

Имею прошитую "ProMicro" на ОС Win7. Подключил для теста потенциометр к платке контроллера - "MMJoySetup" его видит, а кнопки не видит. Точнее при нажатии на любую кнопку из матрицы в программе "MMJoySetup" идет срабатывание только кнопки 1, какую бы не нажимал. Всего к платке нужно подключить 65 кнопок и 3 оси, делаю пульт. Сделал 4 кнопки на контактной плате для теста, не работает. Причем сработка кнопок идет только на потах "D3" и "D2". Попытка назначить ряды и колонки на другие ножки платы ни к чему не приводит. Не подскажите в чем может быть проблема? Не правильно подключил/назначил кнопки? Прошивал все по инструкции, все прошло корректно.

 

Тут как подключил и не работает:

https://pp.userapi.com/c639628/v639628983/1d673/45UmeW1rsF8.jpg

 

Тут подключение, но срабатывает 1 кнопка:

https://pp.userapi.com/c639628/v639628983/1d67d/MQi7J_IETpc.jpg

Опубликовано:

Зачем отдельные? Они объединяются последовательно в одну цепь. СS для всех один и тот же, должен быть активным пока ведется работа с матрицей и цепочкой.

Эм, не понял. Вы же писали:

Берем 4 регистра. Защелку каждого из них вешаем на соответствующую строку

Что тогда есть "защёлка"? Я думал, это и есть CS (1-я ножка регистра 74HC165, которую контроллер будет включать на время опроса, чтобы активировать обмен данными по SPI). А если она будет одна, то как же строки переключать? (кстати по спецификации эта ножка уже инвертированная)
Опубликовано:

 

 

Через сдвиговые регистры ничего не надо. Да и резисторы/конденсаторы нужны для датчиков, а для кнопок диоды.
 

Я почему спросил - в соседней ветке (Заказ плат из Китая) в составе платы №1 есть две платки для энкодеров, на которые впаивается два резистора и два конденсатора.

Нашел описание подобной схемы подключения http://chipenable.ru/index.php/how-connection/item/9-sopryagaem-enkoder-i-mikrokontroller.html . Т.е. получается, что сдвиговые регистры сами дребезг устраняют?

Опубликовано:

Эм, не понял. Вы же писали:Что тогда есть "защёлка"? Я думал, это и есть CS (1-я ножка регистра 74HC165, которую контроллер будет включать на время опроса, чтобы активировать обмен данными по SPI). А если она будет одна, то как же строки переключать? (кстати по спецификации эта ножка уже инвертированная)

Посмотрите внимательно документацию на 165ый. CS - это нога активации чипа в интерфейсе. Если смотреть в описании чипа - это нога СЕ (Clock Enable Input). Она активируется одновременно для всех 4х регистров.Между собой чипы объединяются в цепочку с помощью ног Q7(Serial Data Out) и DS (Serial Data Input).

А еще есть нога PL (Parallel Enable Input). Вот эта нога и есть "защелка", которая отвечает за загрузку регистра данными с параллельных входов.

 

Тоесть, надо активировать эту ногу низким уровнем у соответствующего регистра в тот момент, когда активируется нужная строка матрицы. Регистр сохраняет в своем буфере данные и готов к их передаче. После этого нога PL деактивируется переводом в логическую единицу. Потом то же самое производится со следующим регистром и т.д. Когда все регистры загружены, активируется CS всех 4х регистров одновременно и производится чтение 4х байт данных. Раз ММДжой умеет работать с платами регистров - то эту операцию он должен выполнить без проблем и танцев с бубном. Главное только правильно увязать ноги PL с матрицей и регистры между собой.

Опубликовано:

Уважаемые специалисты! Подскажите, пожалуйста, новичку.

Имею прошитую "ProMicro" на ОС Win7. Подключил для теста потенциометр к платке контроллера - "MMJoySetup" его видит, а кнопки не видит. Точнее при нажатии на любую кнопку из матрицы в программе "MMJoySetup" идет срабатывание только кнопки 1, какую бы не нажимал. Всего к платке нужно подключить 65 кнопок и 3 оси, делаю пульт. Сделал 4 кнопки на контактной плате для теста, не работает. Причем сработка кнопок идет только на потах "D3" и "D2". Попытка назначить ряды и колонки на другие ножки платы ни к чему не приводит. Не подскажите в чем может быть проблема? Не правильно подключил/назначил кнопки? Прошивал все по инструкции, все прошло корректно.

 

Тут как подключил и не работает:

https://pp.userapi.com/c639628/v639628983/1d673/45UmeW1rsF8.jpg

 

Тут подключение, но срабатывает 1 кнопка:

https://pp.userapi.com/c639628/v639628983/1d67d/MQi7J_IETpc.jpg

Каждое переназначение портов необходимо записать в контроллер. Иначе переназначение ничего не даст.

На второй схеме - все абсолютно правильно. Ты ж кнопки запараллелил. Вот и срабатывают все как одна

Опубликовано:

 

 

два конденсатора.
 Имхо,  там конденсаторы как перемычки используются. Хотя могу и ошибаться. 
Опубликовано:

Каждое переназначение портов необходимо записать в контроллер. Иначе переназначение ничего не даст.

На второй схеме - все абсолютно правильно. Ты ж кнопки запараллелил. Вот и срабатывают все как одна

Спасибо! Я об этом не подумал даже. Опыта нет с контроллерами. Буду пробовать! :)

Опубликовано:

В дополнение к этому посту: https://forum.il2sturmovik.ru/topic/4664-mmjoy2-besplatnaya-proshivka-i-soft-dlya-samodelnogo-k/page-23?p=529189&do=findComment&comment=529189.

 

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

Это значит, что надо придумывать внешний механизм опроса матрицы, чтобы заталкивать ее значения в регистры. А с помощью ММДжой уже считывать эти данные. Увязывать опрос логичней всего именно с опросом регистров, так что тут есть поле для фантазии. Самое главное - это укладываться с записью данных в регистры между интервалами их считывания, иначе вместо актуальных данных будет непонятная каша. 

Опубликовано:

Подключил 4 сдвиговых 4021, все кнопки отрабатывают как положено. Долго возился с энкодерами, так и не понял нескольких моментов:

1. Насколько я понял, проверить работу энкодера можно только привязав к виртуальной оси ... может еще есть какие-то способы?

 

2. Если в конфигураторе в поле "Энкодеры" указываю привязанные к энкодеру кнопки, то после записи в контроллер ни одного сигнала с энкодера не приходит, как ни крути. Энкодер начинает работать только при пустых значениях в этом поле и заполненных в полях мапинга кнопок (правое поле):

post-16699-0-55729100-1494873352_thumb.jpg

 

3. При любой активности энкодера назначеные кнопки мигают как сумасшедшие, в джойтестере в разделе Buttons постоянный скролл секунд 20:

post-16699-0-44856400-1494873659_thumb.jpg

 

4. При относительно плавном вращении иногда идет перескок значения на несколько шагов сразу. Причем подключал как напрямую так и через резисторы и конденсаторы по схеме защиты от дребезга.

 

Собственно вопрос - так и должно быть или я что-то делаю неверно?

Опубликовано:

Подключил 4 сдвиговых 4021, все кнопки отрабатывают как положено. Долго возился с энкодерами, так и не понял нескольких моментов:

1. Насколько я понял, проверить работу энкодера можно только привязав к виртуальной оси ... может еще есть какие-то способы?

 

Сделайте как я нарисовал

post-21048-0-82795700-1494877630_thumb.png

Опубликовано:

CS - это нога активации чипа в интерфейсе. Если смотреть в описании чипа - это нога СЕ (Clock Enable Input).

Когда все регистры загружены, активируется CS всех 4х регистров одновременно и производится чтение 4х байт данных.

Вы уверены, что CS в интерфейсе конфигуратора - это нога "Clock Enable Input" чипа 74HC165 (т.е. 15-я нога)?

Судя по разводкам плат в "MMJOY2 [v20161101].rar" (например плата "ProMicroShield" из MMJoy2_ProMicro_Shiled.lay6), CS - это как раз "защелка" "Parallel Enable Input" (т.е. 1-я нога 74HC165). А "Clock Enable Input" там всегда активирован (на землю подключен, т.к. он инвертированный).

 

Соответственно ММДжой эту ногу CS должен выключать+включать всего лишь на один "тик" для загрузки регистров. И только потом читать данные с пина DATA (9-я нога последнего в цепочке регистра) за 8*<количество регистров> тиков.

Так что ваша схема с распараллеливанием столбцов матрицы на регистры может сработать. Но только для двух строк. Т.к в интерфейсе всего 2 регистра можно описать. А тут нужны именно независимые регистры, т.к. CS каждого из них нужно вешать на одну из строк матрицы.

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...