Вопрос по статье "Адаптер джойстика"

dmk

Собрал адаптер и пытаюсь его подключить к Futaba 6XAS. В Real Flight G2 происходит следующее: каждые 3-5 сек. дергаются все каналы, причем значительно - до максимальных (минимальных) значений. Впечатление что сбивается синхронизация с сигналом передатчика. Пробовал изменять значение StartPulseLen (подогнать до 6 кан. варианта), не помогает. Сигнал из передатчика чистый, приходит на Input Capture вход в неискаженном виде.
Два последних канала (7,8) тоже дергаются. Похоже вся таблица Channels заполняется мусором. Толи теряется прерывание от Input Capture и после срабатывания Output Compare теряется привязка к началу пакета, толи ложные прерывания(? откуда) от Input Capture не позволяют вообще сработать Output Compare?

Наблюдал ли кто нибудь такой эффект и как лечить?

ЗЫ. Схема повторена 1:1.

jiv
Dmitry (24-05-2001 15:11)

Собрал адаптер и пытаюсь его подключить к Futaba 6XAS. В Real Flight G2 происходит следующее: каждые 3-5 сек. дергаются все каналы, причем значительно - до максимальных (минимальных) значений. Впечатление что сбивается синхронизация с сигналом передатчика. Пробовал изменять значение StartPulseLen (подогнать до 6 кан. варианта), не помогает.

Наблюдал ли кто нибудь такой эффект и как лечить?

ЗЫ. Схема повторена 1:1.

У адаптера есть две трудноизлечимые беды
1 - Windows 😃. Это я уже отмечал. Винды нельзя отнести к ОС реального времени, поэтому измерение временных интервалов (что делается в драйвере джойстика) производится весьма не точно. Отсюда весьма заметное подрагивание ручек. О кривизне драйвера говорит и то, что на разных ОС и на разных машинах амплитуда подрагиваний меняется. Я лично наблюдал, что на пне 200 под вынь 98 дрожание заметно меньше, чем на третьем пне 550 под вынь 2000 😃 Конечно сервер 2000 не игровая платформа, но такое поведение драйвера выглядит странноватым.

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

Что происходит в Г2 сказать затрудняюсь. Надо бы самому посмотреть.
А вот то, что сбивается синхронизация с передатчиком маловероятно. Нечему там сбиваться 😃

dmk

На небольшое дрожание я внимания не обращаю.
Предположим я отключил передатчик от адаптера. Программа по прежнему опрашивает его и получает последние захваченные в таблицу Channels данные.
Эффект полностью исчезает!!! Следовательно адаптер успевает за компьютером когда прерывание от Input Capture не вызывается.
А если его запретить на время вывода импульса в джойстик? А запись в таблицу Channels разрешать только после обнуления Х в Output Compare?
Для справки: в Г2 на 8 пакетов от передатчика (160 мс) приходится 3 опроса джойстика, все три стоят рядом и влезают в ~20мс.(PIII 450 W95OSR2).
Я попробую, а возражения прочитать смогу только после выходных 😢

Vitaly

Дима, мы с Юрой посмотрим еще раз логику работы программы. Возможно, там дейсвительно допущена неточность в обработке событий, которая иногда приводит глюкам. Когда в реальном времени работает несколько процессов одновременно, такое иногда бывает. Просто пока еще ничего не вылезало.

Если, как ты описываешь, сам компьютер успевает все обрабатывать, то это радует, потому что с опросом передатчика разобраться проще. Давай обсудим проблему по email, потому что надо переходить к тонкостям, которые остальным будут малоинтересны. Писать лучше на эти два адреса одновременно:

jiv@metacom.ru - Юрин email
vitaly@rcdesign.ru - мой email

dmk

С радостью приму участие.
😁