
Сообщение от
HardWareMan
Вся соль там во времени таймаута. Из-за того, что 6ти кнопочный джойстик есть расширение 3х кнопочного и они должны быть совместимы. Но как сделать чтение дополнительных кнопок не добавляя сигналов управления? Вот тут то и добавили схему переключения альтернативного состояния. А так как джойстики опрашиваются во время VBlank'а, то время для таймаута вполне предостаточно. При этом, есть норматив только на минимальную длительность сигнала SYN, обусловенную задержкой в проводе, логике самого джойстика и быстродействием порта ввода-вывода. Таким образом, опрашивая по 50мкс за состояние с перерывом в 2мс вполне укладывается в рамки. Просто следует ввести код определения типа подключенного джойстика да и сам факт подключения. 6ти кнопочной джой может притвориться 3х кнопочным, если зажать MODE при поверапе.