PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка программ (http://pccar.ru/forumdisplay.php?f=27)
-   -   Программная обработка енкодера AutoHotKey-ем (http://pccar.ru/showthread.php?t=2705)

Pahan 01.07.2007 20:10

Программная обработка енкодера AutoHotKey-ем
 
решил я программно обрабатывать енкодер
сделал такой скриптик
Цитата:

Сообщение от ФРАГМЕНТ!!!

if JoyYY <> %JoyY%
{
if JoyYY > %JoyY%
{
SoundSet -5
}

if JoyYY < %JoyY%
{
SoundSet +5
}

JoyYY = %JoyY%
}


И всё это правильно работает внутри лупа в котором стоит
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

archer 01.07.2007 20:26

А энкодер куда подключен? К LPT-порту или к джой-порту?
Но это все равно - штатным портам не хватает времени сканирования порта при быстром провороте энкодера....... Проходили это с Пашей (Wanted-ом) и кстати честно отписали тут.
Вывод был - лучше купить клаву диалог (или дефендер) с энкодером и использовать платку от нее. Хотя щас вроде мутится свой контроллер не из клавы - но он на стадии разработки насколько я знаю.

Pahan 02.07.2007 00:01

подключен к геймпаду , и нажимает у него на обычные кнопки (конкретно на ось джойстика)

как ему может нехватать времени , если на клавиатурах работает , на мышах работает ...
Но не об этом дело.
Главный вопрос, у меня крутилка барахлит (когда её шеволишь туда сюда но не до щелчка цифры меняются) или шо?

А так ведь я могу и исскуственный интеллект ей написать ... типа если сейчас из четырех подряд 1 , 2 и 4 было вправо , значит и 3 должен быть вправо.

Вы , кстати , схему работы мне не кинете?
И где вы писали , чё у вас получилось?

archer 02.07.2007 00:25

http://forum.mp3car.ru/showthread.php?t=1685
конкретно скрипт в 25 посте!

Pahan 02.07.2007 02:35

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

Модет у меня просто енкодер плохой , и его поменять надо?

archer 02.07.2007 10:33

Энкодер - то нормальный, тока вот опрос порта происходит с медленной скоростью, недостаточной для определения направления движения энкодера! При быстром кручении он у тебя просто не отлавливает все пройденные состояния и поэтому выдает абракадабру!
Нельзя нормально прикрутить энкодер напрямую к порту! Нужен аппаратный обработчик - так что либо разламывать клаву либо паять!

Wanted 03.07.2007 02:22

Полностью подтверждаю слова Артура.
Pahan не ...би себе мозги, купи дешевый дефендер, разломай его вынь платку и подключи энкодер уже по УСБ :)
А ежели Exial контроллер домутит, вообще еще все проще и дешевле будет!


Часовой пояс GMT +4, время: 00:46.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot