Un Joystick, un teclado y un ratón para el PCW

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 05 Sep 2011 04:08

Vamos a animar más aún la escena del PCW, que estamos de racha!!!
A ver, acabo de terminar el diseño de lo que quiero implementar. Ahora queda el programa.
Se trata de la idea que dio Habi para el mando con el teclado y un microcontrolador por medio. Pensé en montar este "sistema de PIC" por que así nos aseguraremos de que podremos jugar con él en todos los juegos, ya que solamente algunos tienen la posibilidad de seleccionar el Joystick, y todos el teclado.

Primero os coloco la imagen, y luego os iré explicando...

CIRCUITO NO VÁLIDO

En la imagen vemos que el circuito gira en torno a un PIC16F84, de los comunes que (casi) todo el mundo tenemos tirados por casa (Yo ahora mismo no me queda ni uno pa poder usar...). El reloj lo tomamos de la línea del teclado, ya os explicaré por qué. Al igual que la alimentación (Masa y 5 Voltios).
Al puerto B del PIC, conectamos a los bits 1, 2, 3, 4 y 5 las señales del mando, en el orden arriba, abajo, izquierda, derecha y fuego. Como son contactos a masa internamente en el joystick, tenemos que "hacer flotar" la señal con las resistencias de 100K y 1 K, así detectamos la pulsación del botón.
Además, he incluido un "reset" (Manías mías) y un interruptor para cambiar la configuración de la simulación del teclado. Cuando el interruptor esté abierto, el PIC simulará que pulsamos las flechas del teclado, pero cuando lo cerremos, simulará las teclas O P Q A , las típicas "ópera". En el caso del "Fuego", emplearemos siempre la tecla espacio.
Los dos diodos que están en la línea de datos son para evitar que las señales que enviemos desde el PIC pasen al teclado (D2) y para que las del teclado pasen al PIC (D1).
La señal de reloj la pillamos del pcw, ya que el protocolo de comunicación sincroniza con este los pulsos para enviar una ristra de datos.
El PCW emplea un sistema "raro" y complicado para lo que es un teclado. Se definen 17 grupos, numerados del 0x0 al 0xF (En el caso del 0xC existen dos posibilidades, una de operación "normal" y otra de "anti desbloqueo MAYS". En el programa emplearé el "normal", ya que para cambiarlo, hay que poner un puente internamente en el teclado y no es lo que "viene" por defecto)
Vuelvo al tema. Cada uno de esos 17 grupos, está dividido en 12 bits. Los primeros 4 indican que grupo es, 0000 para el 0, 0001 para el 1, el 0010 para el 2... así hasta el 1111 para el grupo 15 (0xF). Los siguientes 8 bits, tienen asignada una tecla, y pasa a ser 0 en el momento en el que se pulsa. Por ejemplo, si pulsamos la tecla "D", el bit 5 del grupo 0x7 pasa a "0".
Ahora bien, yo en un principio pensaba que se estaban enviando continuamente todos los grupos, pero no es así, solamente se envían en un cambio de estado del teclado, por ejemplo, se envía el grupo 0x7 cuando pulsamos la tecla "D" (El bit 5 se pone a 0) y cuando se suelta (El bit 5 se pone a 1). El "mapa" de como está el teclado en todo momento se encuentra en la memoria del PCW alojado en la dirección 0x3FF0 para el grupo 0, añadiendo un entero a la misma para cada grupo, por ejemplo, nuestro amigo el grupo 0x7, está alojado en 0x3FF7. Así en todo momento, cualquier programa o sistema operativo leerá el rango de direcciones 0x3FF0 a 0x3FFF para saber el estado del teclado.
Como veis, a pesar de la chorizada que os acabo de soltar, para quien sepa de programar pics de estos no le será muy complicado el crear un programa que cada vez que pulsemos un botón del joystick envíe un grupo, y cuando lo soltemos, vuelva a hacerlo. Dependiendo del estado del interruptor de configuración, enviará una u otra posibilidad.

Pues bueno, ahora pa la cama, y cuando pille un rato con ganas de ensamblar, escribiré el programa para el PIC, y cuando me acerque a Oviedo (Jodo, por aquí no queda ni una sola tienda de componentes) pillaré lo necesario para montar el circuito.

Saludinos!!!!

vcoraba
Mensajes: 299
Registrado: 29 Oct 2010 15:07
Agradecido : 1 vez
Agradecimiento recibido: 1 vez

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor vcoraba » 05 Sep 2011 15:50

Ole!! a quitarse el sombrero.... como mola
PD: como veo que no has implementado ningún sistema antirebotes (en la parte del joystick), te aconsejo que soluciones el problema por software.
GRACIAS!!!!
PD2 ¡no me va a quedar sitio dentro del PCW para tunearlo!

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 05 Sep 2011 16:32

UIS... eso del antirebotes lo desconozco... jodo...
Dos cosas.

La primera, las prisas, está mal cableado el puerto DB9, ya que las señales de Fuego y Masa han de ir a los pines 6 y 8 respectivamente (Fallod e diseño de esos...)

Lo segundo: El código fuente:
Al final decidí escribirlo en Basic para que los que no están muy acostumbrados a programar PIC's les sea más fácil entender el programa. Personalmente, pienso, que al programar en "alto nivel" generamos más código del necesario, pero se gana en rapidez al programar y el código fuente es mucho más "entendible".
También adjunto el código ya compilado.
El código está comentado en castellano, lo he probado en el simulador y cumple su cometido. Yo hasta dentro de no se sabe cuantos días no podré ir a pillar un PIC y bueno, también los conectores DIN para intercalarlo entre el PCW y el teclado.
Código:

Código: Seleccionar todo

Código no válido


Saludinos!!!

vcoraba
Mensajes: 299
Registrado: 29 Oct 2010 15:07
Agradecido : 1 vez
Agradecimiento recibido: 1 vez

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor vcoraba » 05 Sep 2011 19:10

Hola un pulsador antirrebote se hace cuando no quieres que se produzcan falsos positivos durante el acercamiento de los contactos, para un Joystick a mi parecer es imprescindible, si no mal me acuerdo se puede hacer mediante software (solo en ensamblador) diciendole que compruebe el estado de la patilla durante x ciclos por ejemplo 200ms y entonces si es realmente una pulsación, por desgracia mis conocimientos de ensamblador ya los tengo mas que olvidados, y dudo mucho que se pueda hacer en basic, perooo tambien se puede hacer con un red RC (resistencia condensador) ya te pasare los cálculos si no quieres rehacer el código en ensamblador, yo solo por pereza no lo haría, sin embargo complica un poco mas la electrónica.
también he pensado que podría sacarse mas partido a tu peazo de idea, por ejemplo poner el pulsador de programancion para que lea el pueto a, almacenar el tren de pulsos y reprogramar el joystick, no se si me explicado.
Un saludo

Avatar de Usuario
ron
Mensajes: 19574
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 2478 veces
Agradecimiento recibido: 2270 veces

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor ron » 05 Sep 2011 19:23

no se si os dais cuenta de lo que estamos disfrutando los demás.

Muchas gracias a los dos, ánimo, entre los dos menudo empujón que le estáis metiendo al PCW. xD

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 05 Sep 2011 20:32

poner el pulsador de programancion para que lea el pueto a, almacenar el tren de pulsos y reprogramar el joystick

no pillo la idea... sorry... ¿pero el tren de la salida?¿a que va al pcw? uisss, me pierdo...

Esto... UN PROBLEMA, (que como todavía no lo he montado... (yo, upsss...) )
El pic emplea 3 ciclos para enviar cada bit del grupo de 12, los 4 de direcciones y los 8 de datos, pero el teclado real, solamente 1, luego, lo que pienso ahora es que en vez de meter el reloj del PCW (16 KHz) al reloj del pic, es colocarle un reloj pal pic solito y detectar el cambio de nivel en otra entrada como trigger para enviar el bit... a ver como lo soluciono...

saludinos!!!

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 06 Sep 2011 00:28

Modificación del circuito.
Usamos un reloj propio para el PIC a 4 MHz y empleamos la señal de reloj como trigger en una entrada digital (Puerto B Bit 0).
Además, está corregido el fallo del conector DB9.
ESTE CIRCUITO YA NO SIRVE, SIGUE MÁS ABAJO...

El código modificado:
Cada ciclo de reloj en el PIC son 0,25uS, en el teclado del PCW 60uS, tenemos entre bit y bit opción de insertar unos 240 ciclos, media de unas 80 órdenes en basic.

Código: Seleccionar todo

Este código ya no sirve tampoco, sigue leyendo...                   


A ver si alguien se atreve a hacer antes que yo...

Saludinos!!!

vcoraba
Mensajes: 299
Registrado: 29 Oct 2010 15:07
Agradecido : 1 vez
Agradecimiento recibido: 1 vez

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor vcoraba » 06 Sep 2011 08:45

Yo estaría encantado de hacer una prueba esta noche, pero no tengo ningún compilador a mano.
Por otra parte es muy fácil que algunos tengan problemas para encontrar el 16f84, pues esta descatalogado según el fabricante, afortunadamente para nosotros ya hay sustituto el 16f88, el cual ya tiene integrado una señal de reloj, y es compatible pata a pata.
Si quieres que lo pruebe te ruego me envíes el fichero a mi correo, (puedes verlo en mi perfil de esta pagina) GRACIAS

javu61
Mensajes: 325
Registrado: 26 Mar 2011 15:58
Agradecimiento recibido: 1 vez

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor javu61 » 06 Sep 2011 09:28

Hola:

Al acercar dos hilos con electricidad, antes de que se toquen saltan chispas entre ellos, el aire hace de dielectrico de un condensador, en el punto de ruptura del dielectrico salta la chispa. Eso mismo ocurre en cualquier interruptor, al acercarse o alejarse se produce un pequeño grupo de pulsos durante unos milisegundos, hasta que se produce el contacto y se estabiliza.

Para evitarlo hay dos sistemas, uno es añadir un condensador, durante los pulsos se carga o descarga evitando el problema, un ejemplo, el inconveniente es que produce un retardo entre el botón y el circuito, en la mayoría de los casos no es significativo, pero puede ser molesto.

Otros sistemas son usar un circuito de retardo con inversores, o mejor un flip-flop, o mejor todavía un 555.

También se puede evitar por software, lo que se hace es leer las pulsaciones, pero solo confirmarlas cuando se mantienen el estado de la misma un tiempo, de esta forma no hace falta hardware auxiliar. Hay varios ejemplo con PIC, este va en C pero creo que se entiende igual que en Basic.

Saludos

dancresp
Mensajes: 5669
Registrado: 13 Nov 2010 02:08
Agradecido : 343 veces
Agradecimiento recibido: 470 veces

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor dancresp » 06 Sep 2011 10:20

Interesante hilo !!! !griuh

¿Como de juegos está este sistema?
Solo tengo el "Batman", y el resto son aplicaciones en CP/M.
Buscando la IP de la W.O.P.R. he encontrado mi índice

vcoraba
Mensajes: 299
Registrado: 29 Oct 2010 15:07
Agradecido : 1 vez
Agradecimiento recibido: 1 vez

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor vcoraba » 06 Sep 2011 18:51

mi gozo en un pozo no encuentro ningún cristal de 4Mhz por aquí.
lo bueno es que ya tengo el pic simulator ide.

Avatar de Usuario
ron
Mensajes: 19574
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 2478 veces
Agradecimiento recibido: 2270 veces

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor ron » 06 Sep 2011 20:02

dancresp escribió:Interesante hilo !!! !griuh

¿Como de juegos está este sistema?
Solo tengo el "Batman", y el resto son aplicaciones en CP/M.



JUEGOS: ( hay algunos, lo chulo es verlos en PCW )

007: The Living Daylights
3D Clock Chess
ACE
Angel Nieto Pole 500
Apple Jack
Arnhem
Ballyhoo
Batman
Bob Winner
Bobby Bearing
Bounder
Brian Cloughs Football Fortunes
Brick
Bridge Player
Buran
Catch 23
Christmas Crackers
Classic Games 4
Classic Games Vol. 1
Classic Games Vol. 2
Clock Chess 89
Colossus 4 Bridge
Colossus 4 Chess
Corsarios
Cozumel
Cutthroats
Cyberbig
Cyrus 2 Chess
Deadline
Enchanter
Fairlight
Fairlight II
Formula 1
Frank Brunos Boxing
Ganimedes
Gnome Ranger
Golden Basket
Gonzzalezz
Goody
Grand Slam
Head Over Heels
Herbert
Hollywood Hijinx
Infidel
Ingrids Back
Jai Alai
Jewel Of Darkness
Knight Orc
Krom El Guerrero
La Corona Mágica
Ladder
Lancelot
Last Ninja 2
Leader Board
Leather Goddesses Of Phobos
Livingstone Supongo
Livingstone Supongo II
Los Templos Sagrados
Match Day II
Mithos
Moonmist
Mortadelo Y Filemón II: Safari Callejero
Mot
Mr. Gas
Mundial De Fútbol
Mutan Zone
Pack Erbe
Planetfall
Plundered Hearts
Poli Diaz
Psi-5 Trading Company
Rescate En El Golfo
Sargon
Scapeghost
Scrabble
Scrabble Deluxe
Seastalker
Silicon Dreams
Sir Perceval
Sirwood
Sky War
Slider
Sol Negro
Sorcerer
Soviet
Space Combat
Spellbreaker
Sporting Triangles
Starcross
Starglider
Stationfall
Strike Force Harrier
Strip Poker
Suspect
Suspended
Tank Attack
Tau Ceti III
Terracom
Tetris
The Armageddon Man
The Fourth Protocol
The Guild Of Thieves
The Hitchhikers Guide To The Galaxy
The Last Mission
The Lurking Horror
The Pawn
Time And Magik
Tomahawk
Trivial Pursuit
Troglo
Ulises
Underground
Wishbringer
Witness
Zork I - The Great Underground Empire
Zork II - The Wizard Of Frobozz
Zork III - The Dungeon Master

dancresp
Mensajes: 5669
Registrado: 13 Nov 2010 02:08
Agradecido : 343 veces
Agradecimiento recibido: 470 veces

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor dancresp » 06 Sep 2011 22:55

Caramba !!! !ein

No sabía que tenía tantos juegos.
Buscando la IP de la W.O.P.R. he encontrado mi índice

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 07 Sep 2011 00:31

He estado hablando con un colega esta tarde, por un lado, tengo dos informaciones, una que dice que el "grupo" de bits se envía una sola vez cada vez que se pulse una tecla, y la otra, que dice que siempre está enviando los 16 grupos completos de continuo.
Voy a volver a reescribir el código para la segunda opción, no creo que e lleve mucho tiempo. También lo compilaré para el 88, ya que solamente es añadirle la línea para decirle que frecuencia usará.
A ver si lo termino esta noche antes de que me de el sueño.
Otra cosa, replanteando la idea, pudiera ser de que el teclado necesite estar desconectado para que el joystick funcione.
Sigo trabajando en ello... vaya tabarra dos estoy dando... jajaja, que tengo un poco de lado el explorador de discos, jajaja
Saludinos!!!!

Avatar de Usuario
DyLucke
Mensajes: 4574
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 121 veces
Agradecimiento recibido: 137 veces

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor DyLucke » 07 Sep 2011 01:14

Pues yo tampoco pensaba tenia tantos, me parece que en el emu tengo asi como una veintena pero no mas. Sorprendido estoy.
"I'm playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

daquena
Mensajes: 127
Registrado: 17 Jul 2011 19:15

Re: Un Joystick, un teclado y un ratón para el PCW

Mensajepor daquena » 07 Sep 2011 03:54

Espero que con esta ya vaya la vencida...
1) Rediseño del circuito.
a - En vez de usar el PIC16F84, vamos a emplear el PIC16F88, a nivel práctico es casi el mismo, pero ganamos en 3 Entradas/Salidas para futuros usos y no dependemos de la parafernalia del oscilador.
b -Añado también un conmutador para seleccionar "qué" vamos a usar, el teclado original del PCW o el Joystick. Ahora tanto el teclado como el joy estarán enviando de continuo las señales, para evitar cualquier tipo de error, la solución más sencilla suele ser la más acertada... Quedan también eliminados los diodos, ya que carecen de sentido ahora.
c - Eliminado el "Reset". Carecía de sentido...

2) Reprogramación del PIC
Ahora el programa queda en bloques de la siguiente manera para poder implementar los cambios de hardware:
[Poner reloj a 8 MHz] - Frecuencia máxima del oscilador interno
[Definición de variables]
[Lectura del estado del Joystick]
[Escritura de los datos en el Puerto A, bit 3]
[Volver a la lectura]
No hay una subrutina que envíe, como siempre lo hace, lo incluimos en el programa principal

3) Queda pendiente el anti-rebote. Quería probarlo primero antes de diseñar un PCB para ello, ya que "puede" que no afecte, por la baja velocidad del reloj del teclado (16 KHz) y la baja actualización de los juegos en el PCW (Es bastante lentilla)

Como se ve en la imagen que adjunto del reloj, antes de cada envío de 12 bits, los 4 de dirección y los 8 de datos, el teclado hace un doble ciclo a 0 de 12 microsegundos. En el programa está implementado también justo antes de que envíe el Bit0 de la dirección.
Como en los casos (fracasados) anteriores, he comentado el código, también escrito en Basic, para que sea más fácil leerlo e interpretarlo.

Adjunto al post, un archivo RAR con el fuente basic, el HEX compilado y el PDF del circuito.

***************************************************
CIRCUITO:
Imagen

***************************************************
CÓDIGO:

Código: Seleccionar todo

'*******************************************
'* PCW PIC Joystick ************************
'* by daquena / SEP 5 2011 *****************
'*******************************************

'Rev 1.0 - Código original
'Rev 1.1 - Coregido reloj del PCW con cistral de 4 Mhz
'- Añadida entrada "reloj" en PORTB.0
'Rev 1.2 - Envía el chorizo de datos continuamente, los 16 grupos

'Señales del teclado, con su bit y su dirección
'TECLA "A" Bit 5 de la dirección 8
'TECLA "Q" Bit 3 de la dirección 8
'TECLA "O" Bit 2 de la dirección 4
'TECLA "P" Bit 3 de la dirección 3
'TECLA "SPC" Bit 7 de la dirección 5
'TECLA "ARRIBA" Bit 6 de la dirección 1
'TECLA "ABAJO" Bit 6 de la dirección A
'TECLA "IQUIERDA" Bit 7 de la dirección 1
'TECLA "DERECHA" Bit 6 de la dirección 0

Define CLOCK_FREQUENCY = 8

Dim arriba As Bit  'Pulsaciones, en este caso ARRIBA en el Joy
Dim abajo As Bit
Dim izda As Bit
Dim dere As Bit
Dim fuego As Bit

Dim tipo As Bit  '0 simula "opera" 1 simula flechas

'Ahora vamos ausar un byte para cada grupo que se envía según la tabla de arriba
'son los grupos 8, 4, 3, 5, 1, A y 0
Dim dato_8 As Byte  'El dato a enviar (GRUPO "0x8"), cada bit tiene un sentido
Dim dato_4 As Byte
Dim dato_3 As Byte
Dim dato_5 As Byte
Dim dato_1 As Byte
Dim dato_10 As Byte  'el grupo "0xA"
Dim dato_0 As Byte

Dim reloj As Bit  'detección del pulso del reloj
'Un ciclo de reloj del PIC son 0,25 microsegundos,
'el del PCW 50 microsegundos... tenemos 200 ciclos para operar
TRISB = 255  'ponemos el puerto b como lectura
TRISA.3 = 0  'y el bit 3 del A como escritura
PORTA.3 = 1  'ponemos la salida a 1 portb.3 en 1

'********************************************
'** PROGRAMA PRINCIPAL **********************
'********************************************
loop:  'Inicio de un bucle infinito

arriba = PORTB.1  'Leemos el Joy
abajo = PORTB.2
izda = PORTB.3
dere = PORTB.4
fuego = PORTB.5
tipo = PORTB.7

'Ahora ponemos el estado que corresponda, pero al contrario.
'El estado lógico en reposo de una tecla es "1" pasa a "0" cuando se pulsa
'Escaneamos siempre el joy y luego al final enviamos el choorizo
If tipo = 0 Then  'Si el tipo es "OPERA"
   dato_8.5 = Not abajo
   dato_8.3 = Not arriba
   dato_4.2 = Not izda
   dato_3.3 = Not dere
   dato_5.7 = Not fuego
Else  'es un tipo "FLECHAS"
   dato_10.6 = Not abajo
   dato_1.6 = Not arriba
   dato_1.7 = Not izda
   dato_0.6 = Not dere
   dato_5.7 = Not fuego
Endif
'*************************************************************************
'A enviar el chorizo de 16 grupos y 12 bits (192 bits) al ciclo del reloj del PCW
Dim ind_grupo As Byte
Dim dato_temp As Byte  'Lo usamos para el ciclo

reloj = 1  'Ponemos la referencia del reloj a 1
For ind_grupo = 0 To 16
      'PRimero, antes de enviar los 12 bits, necesitamos hacer una sincronización.
      'de 1 pasa a 0 durante 12uS, luego a 1 otros 12uS, y finalmente a 0 12uS más para pasar a 1 de nuevo
      '----_-_-----
      PORTA.3 = 0
      WaitUs 12
      PORTA.3 = 1
      WaitUs 12
      PORTA.3 = 0
      WaitUs 12
      PORTA.3 = 1
      'Comenzamos a enviar datos
      While reloj = 1  'Mientras que el relos esté en 1 esperamos...
         reloj = PORTB.0  'Comprobamos que esté en 1, cuando lea que es 0 termina el bucle
      Wend  'podemos enviar el dato
      PORTA.3 = ind_grupo.0  'Enviamos el dato, en este caso, el bit menos sig del grupo que estamos
      reloj = 1  'ponemos la referencia del reloj a 1 para el siguiente dato
      WaitUs 14  'esperamos a que el reloj se vuelva a poner a 1, tarda 12uS, pa librarlo, ponemos 14...
      '************
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = ind_grupo.1
      reloj = 1
      WaitUs 14
      '************
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = ind_grupo.2
      reloj = 1
      WaitUs 14
      '************
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = ind_grupo.3
      reloj = 1
      WaitUs 14
      '************
      'AHORA A POR LOS DATOS
      If ind_grupo = 0 Then dato_temp = dato_0
      If ind_grupo = 1 Then dato_temp = dato_1
      If ind_grupo = 2 Then dato_temp = 255  'Todos los bits a 1, no lo usamos
      If ind_grupo = 3 Then dato_temp = dato_3
      If ind_grupo = 4 Then dato_temp = dato_4
      If ind_grupo = 5 Then dato_temp = dato_5
      If ind_grupo = 6 Then dato_temp = 255
      If ind_grupo = 7 Then dato_temp = 255
      If ind_grupo = 8 Then dato_temp = dato_8
      If ind_grupo = 9 Then dato_temp = 255
      If ind_grupo = 10 Then dato_temp = dato_10
      If ind_grupo = 11 Then dato_temp = 255
      If ind_grupo = 12 Then dato_temp = 255
      If ind_grupo = 13 Then dato_temp = 255
      If ind_grupo = 14 Then dato_temp = 255
      If ind_grupo = 15 Then dato_temp = 255
      
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.0
      reloj = 1
      WaitUs 14
      '************
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.1
      reloj = 1
      WaitUs 14
      '************
      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.2
      reloj = 1
      WaitUs 14
      '************

      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.3
      reloj = 1
      WaitUs 14
      '************

      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.4
      reloj = 1
      WaitUs 14
      '************

      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.5
      reloj = 1
      WaitUs 14
      '************

      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.6
      reloj = 1
      WaitUs 14
      '************

      While reloj = 1
         reloj = PORTB.0
      Wend  'podemos enviar el dato
      PORTA.3 = dato_temp.7
      reloj = 1
      WaitUs 14
      '************

      
Next ind_grupo  'Pasamos al siguiente grupo a enviar
Goto loop  'Volvemos al principio para poder escanear de nuevo el joy en reenviar el chorizo de nuevo
End                                               


*********************************************
FINALMENTE, EL RELOJ:
Imagen

Pues anda, lo de siempre, a intentar hacer funcionar el chisme.
Saludinos:joystick.rar


Volver a “Amstrad PCW”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado