Joystick


Funcionamento e programação do Joystick


Ao invéz de se utilizar de um Driver para se interagir com o hardware (ex. MOUSE), o joystick é programado diretamente atravéz de sua porta I/O (201h). A porta I/O de Jopystick do PC suporta até 2 joysticks.
Também diferente do Mouse e Teclado que possuem codificação no formato digital, o Joystick utiliza um circuito elétrico de resistor-capacitor.
Pode-se Observar este circuito no desenho abaixo.

Funcionamento:
A parte mecânica do joystick controla o potenciômetro (RV), conforme sua posição o capacitor (C) se carregará mais rapidamente ou mais lentamente. Quando um "write" é feito à porta do joystick, a chave (interuptor mostrado no desenho) se fecha causando um curto no capacitor aterrando sua 2 extremidades, isso faz com que o inversor tenha uma saída lógica 1, após o término do "write" a chave volta para sua posição inicial e o capacitor começa a se recarregar. O capacitor se recarregará até que na entrada do inversor tenhamos um estado lógico 1, causando a saída à ser zero. O tempo de carga do capacitor varia em função da posição do potenciômetro.
Cada "direcional" (Axis) do joystick é conectado à um esquema como este acima.

Disposição dos Bits da porta 201h (Joystick)


Como programar:

  • Deve-se fazer um "write" à porta 201h, ou seja, enviar um dado à porta (a porta ignora o que for enviado, basta enviar qualquer coisa) para que ela descarregue os capacitores, em seguida efetuamos uma leitura dessa porta e teremos como retorno os Bits relativos aos botões e aos capacitores.
  • A leitura dos botões é simples, basta testar os bits. O valor 1 significa que o botão não está pressionado, zero (obviamente) significa que está pressionado. Os bits dos botões são os 4 de maior ordem.
  • Para leitura do direcional, é necessário algo mais do que só testar os bits, já que temos que saber sua posição relativa ao centro. Para se detectar isso, utilizo um loop que vai medir quanto tempo leva para a saída do inversor se tornar ZERO após ter sido feito o "write" à porta do joystick. Os bits do direcional são os 4 primeiros bits.

  • Geral
    Sugestões| E-Mail| Procura| Links| Novidades|
    Emulação
    Emuladores| Utilitários| Em_Desenvolvimento| Inf._Técnicas| Discussion_Boards| DIP_Switches| Pinagem_JAMMA| Patches| Diversos
    Programação
    Vídeo_Modo13| Cominicação_LPT| Joystick| Teclado| Mouse| Scroll| Formatos_de_Imagem| Tabela_de_Interrupções| Compiladores 

    © PRADO 1996,1997,1998
    Pagina Principal.
    Sugestões / Comentários E-Mail Links para outros Sites O que há de novo Emuladore de Arcades Utilitários e Acessórios para os emuladores Emuladores em desenvolvimento Processadores, conexões, placas, etc.. Configurações DIP Conexão JAMMA Informações e pedidos diversos Atualizações / Patches VGA modo 13 LPT Progr Programação do Joystick Programação do Teclado Programação do Mouse Como fazer Scroll de tela Formatos PCX , BMP Interrupções MS-DOS / x86 Compiladores 1