решил я программно обрабатывать енкодер
сделал такой скриптик
Цитата:
Сообщение от ФРАГМЕНТ!!!
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