Google Búsqueda personalizada

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

puerto paralelo - Turbo C++ 3.0

comentario del autor Mar Jul 17, 2007 5:06 pm
   
consulta:



encontre un programa basico en Turbo C++ 3.0 (RS.cpp, RS.exe,) para el puerto paralelo(prender y apagar leds).
cuando ejecuto RS.exe no me maneja los leds conectados en los pin de datos.

¿falta algo para poder habilitar el puerto?


adjunto el archivo puertosc.zip (RS.cpp, RS.exe, pdf, block notas)

RS.JPG  (24.32 KB)

RS.JPG

conexion.JPG  (19.05 KB)

conexion.JPG

puertosc.zip  (54.8 kb) -

maac2006

Reputación

sin valorar Mar Jul 17, 2007 11:18 pm
   
Hola!

Una pregunta: ¿Que windows usas?

Si es XP o 2000 no te va a funcionar porque el C++ es para MS-DOS y no tiene acceso directo al hardware en estos sistemas operativos.

Se deben utilizar librerias dll para su control, por ejemplo la inpout32.dll!

¿Que tenes pensado hacer con el puerto?
Si es algun desarrollo nuevo te recomiendo migres a otro compilador más actual, como C++ Builder o Delphi...

Saludos!

Marcos!

kronos2k3

Reputación

comentario del autor Mie Jul 18, 2007 1:59 am
   
kronos2k3 gracias por contestar

windows XP

manejar la salidas de datos por lo pueto parlelo


inpout32.dll ¿como enlazo al programa con este dll?


si tienenes algun programa muestra en C++ Builder o Delphi... para manejar el puerto paralelo.

maac2006

Reputación

sin valorar Mie Jul 18, 2007 3:07 am
   
Hola...
Mira en el Delphi es muy facil sacar un dato por el puerto:

Primero te aseguras de que la librería inpout32.dll esté en el mismo directorio en donde reside tu aplicación.

Luego al principio del código de tu programa, debajo de implementación haces las siguientes declaraciones:

Código:
implementation

{$R *.dfm}

  function Inp32(wAddr: word): byte; stdcall; external 'inpout32.dll';
  function Out32(wAddr: word; bOut: byte): byte; stdcall; external 'inpout32.dll';


Una vez hecho esto ya podes utilizar ambas funciones Inp32 y Out32 repectivamente.

En este caso usamos la Out32:
Código:Out32(direccion_del_puerto,dato_a_poner_en_el_puerto);

En dirección_del_puerto pones:
$378 para el LPT1
$278 para el LPT2

En dato_a_poner_en_el_puerto pones un número entero entre 0 y 255.
255 para todos los led prendidos y 0 para todos apagados.

Ejemplo:

Código:Out32($378,170);

Entonces se prenden los leds 10101010

Te adjunto un captura del programita y un zip del codigo fuente!

Saludos!

Marcos

Captura.jpg  (7.55 KB)

Captura.jpg

Ejemplo puerto LPT.rar  (175.45 kb) - Código fuente y ejecutable.

kronos2k3

Reputación

comentario del autor Jue Jul 19, 2007 3:43 pm
   
kronos2k3

excelente la aplicacion del puerto paralelo en Delphi.

donde puedo bajar este programa DELPHI y se habra algunos ejemplos para poder aprender mas este lenguaje de programcion.

y utilizar el puerto paralelo, puerto serial, tarjeta sonido .etc.

¿como puedo crear mi propio .dll?

saludos

gracias

maac2006

Reputación

sin valorar Jue Jul 19, 2007 10:45 pm
   
Hola che... el delphi lo bajas del e m u l e... bajate la version 7, es la que te recomiendo... es un solo cd.

Despues buscate en el mismo e m u l e manuales hay bastantes para bajar con muy muy mucha información.

Con respecto a como crear tu propia dll... eso tambien se hace con delphi... pero es algo complicado de explicar si no conoces el lenguaje todavia!

Suerte... Vas a ver que hay un "mundo" de delphi esperandote en la red!

Saludos!

Marcos

kronos2k3

Reputación

sin valorar Jue Jul 19, 2007 11:35 pm
   
ok


gracias por la ayuda



voy a descargar programa y tutoriales.

electronica.2007

Reputación

sin valorar Vie Jul 20, 2007 7:31 pm
   
puerto paralelo visual basic

visual basic.JPG  (46.99 KB)

visual basic.JPG

.exe .dll

Paralelo-v2-Install.zip  (41.09 kb) -

electronica.2007

Reputación

sin valorar Lun Abr 28, 2008 4:34 pm
   
Hola, yo necesito hacer lo mismo, pero en C++ Builder

Alguien sabe como tengo que declaralo?

juric

Reputación

sin valorar Vie May 02, 2008 1:11 am
   
Esto lo usaba en C++Builder para una libreria similar que se llamaba io.dll
Solo tenes que cambiar el nombre de la dll y de sus funciones internas

Esto va en el header (*.H)

typedef void (WINAPI *PORTOUT) (short int Port, char Data);
typedef char (WINAPI *PORTIN) (short int Port);
typedef short int (WINAPI *ISDRIVERINSTALLED)();
PORTOUT PortOut;
PORTIN PortIn;
ISDRIVERINSTALLED IsDriverInstalled;
HMODULE hio;

void TForm1::UnloadIODLL()
{
FreeLibrary(hio);
}

int TForm1::LoadIODLL()
{
hio = LoadLibrary("io");
if (hio == NULL) return 1;
PortOut = (PORTOUT)GetProcAddress(hio, "PortOut");
PortIn = (PORTIN)GetProcAddress(hio, "PortIn");
IsDriverInstalled = (ISDRIVERINSTALLED)GetProcAddress(hio, "IsDriverInstalled");
return 0;
}

Esto va en el modulo (*.CPP)

void __fastcall TForm1::FormCreate(TObject *Sender)
{
int z;
z = LoadIODLL();
if(z) {
Application->MessageBox("No se puede cargar io.dll\nEl sistema no puede continuar","Error",16);
}
z = IsDriverInstalled();
if (!z) {
Application->MessageBox("No se puede cargar io.dll\nEl sistema no puede continuar","Error",16);
}
return;
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
UnloadIODLL();
}

Despues podes usar, por ejemplo

PortOut(888,255);

Suerte !

Terminator

Reputación

sin valorar Mie Oct 15, 2008 10:05 am
   
Hola Gracias por el aporte.

disculpa la molestias pero como se utiliza el inp32 en delphi, para obtener datos del puerto paralelo.

alexkz

Reputación

sin valorar Lun Abr 13, 2009 10:52 am
   
estimados,
soy bastante nuevo en el manejo de puerto paralelo.
hay alguna forma de pasar de 0 a 1 y de 1 a 0 cada uno de los 7 pines utilizables del paralelo?
porque en el ejemplo que mandaron, que esta genial, solo veo que Out32($378,255); prende todos, pero se puede hacer de manera selectiva? como sería para cada uno?

mil gracias,
esteban

esteban_pix

Reputación

sin valorar Mar Abr 21, 2009 8:02 am
   
Tenes mas de 8 pines utilizables.

Los mas faciles son los 8 pines del 2 al 9 inclusive.

El 2 se pone en uno cambiando el 255 por un 1.
El 3 se pone en uno cambiando el 255 por un 2.
El 4 se pone en uno cambiando el 255 por un 4.
El 5 se pone en uno cambiando el 255 por un 8.
El 6 se pone en uno cambiando el 255 por un 16.
El 7 se pone en uno cambiando el 255 por un 32.
El 8 se pone en uno cambiando el 255 por un 64.
El 9 se pone en uno cambiando el 255 por un 128.

Para encender el 5 (Cool y el 9 (128) tenes que mandar 5 + 128 = 133 en vez de 255.

Para encender los 4 ultimos (6, 7, 8 y 9)haces: 16 + 32 + 64 + 128 = 240

Terminator

Reputación

sin valorar Mar Abr 21, 2009 8:36 am
   
si si,
lo logre poniendole un fuking tester a la salida del paralelo y fui probando, compilando el programa por cada uno y me arme una tablita.
otra preguntonta sería si alguien sabe como armar una lista de numero binarios en excell, pero por ahí es para otro foro.
ahora que le enganche la onda al dll, ya arme varias cosas diferentes, esta bastante bueno el asunto.
mil gracias, +esteban

esteban_pix

Reputación

sin valorar Lun Jun 29, 2009 5:01 pm
   
Camarada si quieres usar el trubo c++, para que no tengas que aprenderte otro programa solo bajate el porttalk22 buscalo asi en san google e instalalo y ya esta a mandar datos por el puerto.

efren3000

Reputación

sin valorar Lun Jun 29, 2009 5:04 pm
   
Camarada si quieres usar el trubo c++, para que no tengas que aprenderte otro programa solo bajate el porttalk22 buscalo asi en san google e instalalo y ya esta a mandar datos por el puerto.

efren3000

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos