Приставки > Джойстики и прочие манипуляторы
Джой для сеги на ардуино
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:
Добавлено позже:
Да, ещё есть "горячее" перетыкание картриджей в поисках ништяков. Производитель тоже запрещает, но мы же не ищем лёгких путей, правда?
Навигация
Перейти к полной версии