![]() |
Программная обработка енкодера AutoHotKey-ем
решил я программно обрабатывать енкодер
сделал такой скриптик Цитата:
GetKeyState, joyy, %JoystickNumber%JoyY Вкратце абысню что делаю: если с последнего лупа переменная JoyY изменилась , то мы входим в процедуру обработки. Если она стала больше , то увеличиваем громкость , меньше , уменьшаем. Ну , плюс еще , у меня стоят контроли перехода через ноль ... но всё равно это не всегда помогает , т.к. иногда схема получается не ++-++-++-++-++-++-++-++-++-++-++-++- а ++--++--+-++-- Но , то ли у меня енкодер барахлит , то ли я не фтыкаю А если быстро крутить крутилку , то вааще билеберда получается. И если после всех обработок и вычисток посмотреть на счетчик кручений вправо и счетчик кручений влево (есстесно при этом крутим всегда только вправо) , можно увидеть , что в лево я крутил 80% раз !!! Громкость в итоге регулируется ... но медленновато. Может я не понимаю схему работы? Вообще , если крутить медленно , то я получаю цифры Вправо: 000 050 100 000 050 100 000 050 100 000 050 100 000 050 100 000 050 100 Влево: 000 100 050 000 100 050 000 100 050 000 100 050 000 100 050 000 100 050 |
А энкодер куда подключен? К LPT-порту или к джой-порту?
Но это все равно - штатным портам не хватает времени сканирования порта при быстром провороте энкодера....... Проходили это с Пашей (Wanted-ом) и кстати честно отписали тут. Вывод был - лучше купить клаву диалог (или дефендер) с энкодером и использовать платку от нее. Хотя щас вроде мутится свой контроллер не из клавы - но он на стадии разработки насколько я знаю. |
подключен к геймпаду , и нажимает у него на обычные кнопки (конкретно на ось джойстика)
как ему может нехватать времени , если на клавиатурах работает , на мышах работает ... Но не об этом дело. Главный вопрос, у меня крутилка барахлит (когда её шеволишь туда сюда но не до щелчка цифры меняются) или шо? А так ведь я могу и исскуственный интеллект ей написать ... типа если сейчас из четырех подряд 1 , 2 и 4 было вправо , значит и 3 должен быть вправо. Вы , кстати , схему работы мне не кинете? И где вы писали , чё у вас получилось? |
http://forum.mp3car.ru/showthread.php?t=1685
конкретно скрипт в 25 посте! |
Ндя
скрипты у нас почти что , можно сказать одинаковыми то вышли. Только вы писали под ЛПТ , а я под джойстик. Но вам проще - у вас строка генерица из бинарки 0 или 1 , а у меня три числа , и каждое больше или меньше другого , в зависимости от анправления вращения Только всё таки вопрос до конца мой не раскрыт. Когда я быстро кручу енкодер , какие цифры он должен выдавать? Если крутить его медленно , получаем 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Если крутить быстро - каша. И чем быстрее крутим , тем больше шансов получить строку типа 1 2 1 2 3 1 2 1 2 3 1 2 1 3 2 1 2 3 1 2 Модет у меня просто енкодер плохой , и его поменять надо? |
Энкодер - то нормальный, тока вот опрос порта происходит с медленной скоростью, недостаточной для определения направления движения энкодера! При быстром кручении он у тебя просто не отлавливает все пройденные состояния и поэтому выдает абракадабру!
Нельзя нормально прикрутить энкодер напрямую к порту! Нужен аппаратный обработчик - так что либо разламывать клаву либо паять! |
Полностью подтверждаю слова Артура.
Pahan не ...би себе мозги, купи дешевый дефендер, разломай его вынь платку и подключи энкодер уже по УСБ :) А ежели Exial контроллер домутит, вообще еще все проще и дешевле будет! |
Часовой пояс GMT +4, время: 12:21. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot