| Приставки > Джойстики и прочие манипуляторы |
| Джой для сеги на ардуино |
| << < (2/5) > >> |
| Rumata:
--- Цитата: Skay от 12 Август 2018, 21:35:57 ---я один эту строку вижу? --- Конец цитаты --- Нет. Но как-то странно трактуешь. Нафига нам тут мост? Мост не нужен. Мост - он между устройствами, его (джойстика) у нас как раз и нету |
| Skay:
Rumata, в первоначальном моем сообщение писалось что есть хорошая основа. Да и платка по себе мелкая, и все в ней 'из коробки'. Мы же не знаем что и как умеет человек. А допиливать что то имеющееся порой проще чем с нуля пилитьпротокол. |
| megavolt85:
--- Цитата: Skay от 12 Август 2018, 21:28:04 ---а внимательнее почитать что там? --- Конец цитаты --- вплоть до схемы и исходного кода --- Цитата: Skay от 12 Август 2018, 21:28:04 ---про декап яж написал 'Чтоб было'. --- Конец цитаты --- декап нужен если хочешь повторить устройство на ПЛИС и/или не вариант просчитать протокол --- Цитата: Skay от 12 Август 2018, 21:35:57 ---я один эту строку вижу? --- Конец цитаты --- ты её просто не верно трактуешь Добавлено позже: --- Цитата: Skay от 12 Август 2018, 21:56:32 ---в первоначальном моем сообщение писалось что есть хорошая основа. --- Конец цитаты --- а ты исходный код то хоть смотрел? по genesis/megadrive там ничего нет |
| Skay:
megavolt85, смотрел, еще лет 5 назад когда только опубликовали. Знаю что нет. И упомянаемого денди вроде тоже небыло. У меня Были слова что есть хорошая основа) Ну ладно. Нет так нет. |
| Rumata:
--- Цитата: Skay от 12 Август 2018, 21:56:32 ---есть хорошая основа --- Конец цитаты --- И что толку от этой основы, если она не для этой задачи? Железо там избыточно, для данного случая многократно. Там Altera EPM3032A плюс ARM Cortex M3 STM32F103. И никакого "допиливать" тут не будет, ибо там задачи совершенно другие. Надо будет всё делать с нуля. |
| demolition.nick:
--- Цитата: Rumata от 12 Август 2018, 21:48:53 ---Единственно, я бы не стал привязываться к Адурине. Борды, шилды, скетчи - это конечно, здорово, но даже самая мелкая Адуринка для встраивания в портативку великовата. Есть смысл смотреть в сторону непосредственного программирования AVR. Там, небось, и ATtiny хватит, главное 17 линий GPIO. --- Конец цитаты --- Я собственно это и подразумевал. Даже в самой мелкой ардуинке есть USB-TTL, стабилизатор напряжения и куча штырьков. В моём случае всё это не нужно. Подойдём к вопросу с другой стороны. Все альтернативные вприанты мне известны и в данной теме не интересны. Готовых решений как я понял нет. Чтоб самому написать скетч, нужно хорошо понимать работу джоя. Раньше статью находил про устройство и сигналы сеговских джоев, щас найти не могу. Мб кто поделится? |
| megavolt85:
--- Цитата: demolition.nick от 12 Август 2018, 22:26:22 ---Я собственно это и подразумевал. --- Конец цитаты --- всё бы ничего, только посмотри что у AVR есть со столькими свободными GPIO и ты сам вернёшься к выпиливанию капли из джоя а так уверенно я говорю потому что твоя идея пришла мне в голову ещё тогда, когда ты только заикнулся про микрухи джоев для своей портативке в теме про MD350. я ещё тогда прикинул как это будет выглядеть в микрике, посмотрел продукцию atmel'a и взвесил все за и против ;) |
| Rumata:
--- Цитата: megavolt85 от 12 Август 2018, 22:37:06 ---только посмотри что у AVR есть со столькими свободными GPIO --- Конец цитаты --- А что есть? o_0 Вот ATtiny2313, 18 GPIO. |
| megavolt85:
--- Цитата: Rumata от 12 Август 2018, 22:49:52 ---ATtiny2313, 18 GPIO. --- Конец цитаты --- где? на первой странице даташита? пока пишешь код в теории, то вроде всё ажурно, а как начинаешь гонять в железе, то понимаешь что внутренний осцилятор не удовлетворяет требованиям, особенно когда надо использовать прерывания по 20 микросекунд, приходится вешать внешний, вот уже минус две ноги. это только пример с осцилятором, а таких подводных камней валом, в итоге требование в 17 GPIO выльется в то, что кнопки прийдётся разводить на разные порты и всё в таком духе |
| Rumata:
И что там такого устрашающего на первой станице? И зачем нам прерывания по 20 мкс, если опрос идёт с периодом 20 мс? Ну собственно хорошо, берём ATmega8, 23 GPIO. Тоже мало? |
| demolition.nick:
--- Цитата: megavolt85 от 12 Август 2018, 22:37:06 ---всё бы ничего, только посмотри что у AVR есть со столькими свободными GPIO и ты сам вернёшься к выпиливанию капли из джоя а так уверенно я говорю потому что твоя идея пришла мне в голову ещё тогда, когда ты только заикнулся про микрухи джоев для своей портативке в теме про MD350. я ещё тогда прикинул как это будет выглядеть в микрике, посмотрел продукцию atmel'a и взвесил все за и против ;) --- Конец цитаты --- И какие "против"? Я могу повторить всё что писал выше. Добавлено позже: Валяются у меня 2 платы с Atmega16 |
| megavolt85:
--- Цитата: Rumata от 12 Август 2018, 23:55:15 ---И зачем нам прерывания по 20 мкс --- Конец цитаты --- потому что джой шестикнопочный и сразу после прерывания по низкому уровню SEL нужно заводить таймер на 20-25 мкс, если за это время не прелетит прерывание по SEL, то работаем в режиме трёх кнопочного --- Цитата: Rumata от 12 Август 2018, 23:55:15 ---ATmega8, 23 GPIO. Тоже мало? --- Конец цитаты --- может и достаточно, но не рентабельно, рублей 80 мега + кварц + керамика, а джой 135 стоит --- Цитата: demolition.nick от 13 Август 2018, 00:09:33 ---И какие "против"? --- Конец цитаты --- цена + размер = неоправданное создание проблем для себя самого |
| Rumata:
--- Цитата: megavolt85 от 13 Август 2018, 00:26:17 ---может и достаточно, но не рентабельно, рублей 80 мега + кварц + керамика, а джой 135 стоит --- Конец цитаты --- Блин, ну автор же давно озвучил свои условия. --- Цитата: megavolt85 от 13 Август 2018, 00:26:17 ---неоправданное создание проблем для себя самого --- Конец цитаты --- Ну тут лучшее решение - вообще ничего не делать :lol: --- Цитата: megavolt85 от 13 Август 2018, 00:26:17 ---потому что джой шестикнопочный и сразу после прерывания по низкому уровню SEL нужно заводить таймер на 20-25 мкс, если за это время не прелетит прерывание по SEL, то работаем в режиме трёх кнопочного --- Конец цитаты --- Я, видимо, что-то не улавливаю. Определение режима делается один раз. Или нет? |
| megavolt85:
--- Цитата: Rumata от 13 Август 2018, 00:44:02 ---Определение режима делается один раз. Или нет? --- Конец цитаты --- тут как бы не совсем определение режима. SET_L_1: D0 = вверх, D1 = вниз, D2 = 0, D3 = 0 , D4 = A, D5 = START SET_H_1: D0 = вверх, D1 = вниз, D2 = влево, D3 = вправо, D4 = B, D5 = C SET_L_2: D0 = 0, D1 = 0, D2 = 0, D3 = 0, D4 = A, D5 = START SET_H_2: D0 = Z, D1 = Y, D2 = X, D3 = MODE, D4 = 1, D5 = 1 SET_L_3: D0 = 1, D1 = 1, D2 = 1, D3 = 1, D4 = A, D5 = START 1) начало цикла 2) пока SEL в высоком уровне выводим SET_H_1 и ждём прерывания по SEL 3) если прилитело прерывание по низкому уровню SEL выводим SET_L_1 4) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_1, иначе ждём пока SEL в низком уровне и переходим в начало 5) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_1, иначе переходим в начало 6) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_1, иначе ждём пока SEL в низком уровне и переходим в начало 7) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_2, иначе переходим в начало 8) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_2, иначе ждём пока SEL в низком уровне и переходим в начало 9) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_3 , иначе переходим в начало 10) ждём перехода SEL в высокий уровень и возвращаемся в начало ну собственно я уже и расписал всю логику программы, осталось перевести это в код :lol: единственно надо будет поиграть ожиданием в 20 микросекунд, думаю надо начинать с 30 мкс |
| Skay:
--- Цитата: demolition.nick от 12 Август 2018, 22:26:22 ---Раньше статью находил про устройство и сигналы сеговских джоев, щас найти не могу. Мб кто поделится? --- Конец цитаты --- Ты про эту ? http://www.emu-land.net/forum/index.php/topic,8876.msg1327061.html#msg1327061 |
| HardWareMan:
Ммм. Теперь я понимаю причину несовместимости некоторых китайских 6-ти кнопочных джойстиков с некоторыми 3х кнопочными играми (вроде того же Golden Axe). Оригинальный или качественный клон 6ти кнопочного считает импульсы для переключения на расширенные кнопки, а некачественный клон тупо имеет одновибратор задержки от первого импульса. Таким образом, Если на оригинальный или качественный клон подать длинный импульс SYN то они всё равно отдадут базовые кнопки, а если на некачественный - то он через некоторое время после активации вместо базовых кнопок начнет отдавать расширенные. Замечу, что в рекомендации программирования заявлены установки программных задержек при управлении сигналом SYN (обычна пара-тройка команд NOP, или производить другие необходимые вычисления). |
| demolition.nick:
Да уж. Врядли я это осилю |
| Rumata:
Да, ещё один момент. Попадались китайские джойстики, которые в игре определялись как 3-кнопочные. И ещё. Кнопка MODE. Удерживаемая при старте системы она должна однозначно перевести джойстик в 3-кнопочный режим, даже если игра в состоянии работать с 6-кнопочным. |
| HardWareMan:
--- Цитата: Rumata от 13 Август 2018, 21:39:03 ---И ещё. Кнопка MODE. Удерживаемая при старте системы она должна однозначно перевести джойстик в 3-кнопочный режим, даже если игра в состоянии работать с 6-кнопочным. --- Конец цитаты --- Уточнение: при подаче питания на джой. Т.е., можно просто перетыкнуть с зажатым MODE. Но производитель запрещает перетыкать на включенную, и мы безоговорочно придерживаемся этих правил, правда? |
| Rumata:
Ну следствия перетыкания я видел. Выбитая линия порта. Что на клонах, что на оригиналах (на оригиналах интереснее :D) А так - да, правила созданы для того, чтобы их нарушать :lol: Добавлено позже: Да, ещё есть "горячее" перетыкание картриджей в поисках ништяков. Производитель тоже запрещает, но мы же не ищем лёгких путей, правда? |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |