Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

PUERTO PARAL - I´M STUCK

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: PUERTO PARAL - I´M STUCK Responder citando

Hola,

Bueno, queria aclarar algunas dudas...

En primer lugar me explico: Tengo una lectora de tarjetas CHIP que compre en COELMA. El programa que viene para leer el codigo de la tarjeta esta hecho en QBASIC, pero a mi me interesa hacerlo en C++ Builder 3.0, para Windows 98.

Hasta ahora he probado varias cosas, pero no me han funcionado... porque mi cerebro es muy limitado. Resulta que leia el puerto paralelo sin tener en cuenta el circuito exterior, y por eso no me sale... pero se lo que se tiene que hacer:

El proceso de lectura de la tarjeta es el siguiente:

La tarjeta tiene 8 terminales.
1) Vcc unido a los pines 5, 6 y 7 (Bit de datos 3, 4 y 5) del puerto paralelo que suministran la alimentación +5V.
2) R/W unido al pin 4 (Bit de datos 2) del puerto paralelo.
3) CLK unido al pin 3 (Bit de datos 1) del PP.
4) GND unido al pint 25 (GND) del PP.
5) Vpp unido a los pines 5, 6 y 7 de PP.
7) I/O unido al pin 10 (ACK) del puerto paralelo.
Cool N/C.

El direccionamiento de la PROM lo realiza un circuito contador interno de 8 bits, de forma que cuando el contador está en la posición n, se puede leer o escribir en dicha dirección.

Para comenzar en la dirección cero debemos introducir una señal de reset (R/W, pin 4 a 1), y para avanzar en la posición basta un pulso de reloj (CLK, pin 3). Hay que señalar que el contador es cíclico y cuando supere la posición 255 pasará a la posición cero.

Ademas Vcc y Vpp estan a 1, con Vpp a 1 la tarjeta esta en modo de lectura.

Y nada, la tarjeta tiene 128 bits, y en cada nibble tengo un codigo hexadecimal, y a mi lo que me interesan los los bytes 5, 6 7 y 8 que es donde se encuentra el codigo de la tarjeta, es decir bits 33 a 64.

Repito, lo hago bajo Windows 98, seguro que es una tonteria y es muy facil... lo que quiero es poder tener el codigo en algun Memo, String,...y el tratamiento posterior no es problema.

Si alguien me puede ayudar le estaria eternamente agradecido...

Muchas gracias de antemano y un saludo,

Juan.

PD: Si alguien quiere, le paso el codigo fuente en QBASIC para que le eche un vistazo...

e-mail: destorni_99@yahoo.es

Volver arriba
Mensaje    Asunto: PUERTO PARAL - I´M STUCK Responder citando

Hola Juan,

Supongo que donde te encontrarás con problemas es a la hora de leer y escribir en los puertos de E/S. A continuación te pongo dos funciones para ello. No las he probado, pero supongo que funcionarán. OJO pruebalo solo con windows 95 y 98 porque con NT te van a fallar.

unsigned char __fastcall In (unsigned short Puerto)
{
unsigned char Resultado;

asm
{
mov dx, Puerto
in al, dx
mov Resultado, al
}

return Resultado;
}
//---------------------------------------------------------------------------

void __fastcall Out (unsigned short Puerto, unsigned char Valor)
{

asm
{
mov al, Valor
mov dx, Puerto
out dx, al
}

}
//---------------------------------------------------------------------------


Suerte,

{b]Angel M. Aranguren[/b]

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.