Regístrate gratis para participar de los foros, o si ya estás registrado haz login.
| 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) |
|
| 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! |
|
| 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. |
|
| 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:
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 |
|
| 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 |
|
| 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 |
|
| Jue Jul 19, 2007 11:35 pm | |
|
ok
gracias por la ayuda voy a descargar programa y tutoriales. |
|
| Vie Jul 20, 2007 7:31 pm | |
|
puerto paralelo visual basic
|
|
| Lun Abr 28, 2008 4:34 pm | |
|
Hola, yo necesito hacer lo mismo, pero en C++ Builder
Alguien sabe como tengo que declaralo? |
|
| 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 ! |
|
|
|
|