⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

puerto paralelo - Turbo C++ 3.0

maac2006
hace 18 años
hace 18 años
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)
kronos2k3
hace 18 años
hace 18 años
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!
maac2006
hace 18 años
hace 18 años
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.
kronos2k3
hace 18 años
hace 18 años
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: [code:1:23d09be49f] implementation {$R *.dfm} function Inp32(wAddr: word): byte; stdcall; external 'inpout32.dll'; function Out32(wAddr: word; bOut: byte): byte; stdcall; external 'inpout32.dll'; [/code:1:23d09be49f] Una vez hecho esto ya podes utilizar ambas funciones Inp32 y Out32 repectivamente. En este caso usamos la Out32: [code:1:23d09be49f]Out32(direccion_del_puerto,dato_a_poner_en_el_puerto);[/code:1:23d09be49f] 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: [code:1:23d09be49f]Out32($378,170);[/code:1:23d09be49f] Entonces se prenden los leds 10101010 Te adjunto un captura del programita y un zip del codigo fuente! Saludos! Marcos
maac2006
hace 18 años
hace 18 años
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
kronos2k3
hace 18 años
hace 18 años
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
electronica.2007
hace 18 años
hace 18 años
ok gracias por la ayuda voy a descargar programa y tutoriales.
electronica.2007
hace 18 años
hace 18 años
puerto paralelo visual basic
juric
juric
1
hace 17 años
hace 17 años
Hola, yo necesito hacer lo mismo, pero en C++ Builder Alguien sabe como tengo que declaralo?
alexkz
alexkz
1
hace 17 años
hace 17 años
Hola Gracias por el aporte. disculpa la molestias pero como se utiliza el inp32 en delphi, para obtener datos del puerto paralelo.
esteban_pix
hace 16 años
hace 16 años
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
Terminator
hace 16 años
hace 16 años
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 (8) 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
esteban_pix
hace 16 años
hace 16 años
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
efren3000
hace 16 años
hace 16 años
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
hace 16 años
hace 16 años
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.
Terminator
hace 17 años
hace 17 años
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 !
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.87
(15)

Curso Diseño de Amplificadores de Máxima Fidelidad

Maximiliano Resch
$ 29 USD
$ 13 USD
4.94
(16)

Curso Refrigeración Comercial Aplicado a Diagnóstico y Reparación

Ing. Georga Melgarejo
$ 40 USD
$ 13 USD
4.71
(7)

Curso TV OLED y QLED con el Ing. Picerno

Ing. Alberto H. Picerno
$ 29 USD
$ 10 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis