Autor
|
Tema: [Electronica y programación] manejo del puerto paralelo... (Leído 207,917 veces)
|
|
BADBYTE-K
Knowledge is power, Diesel-K
Desconectado
Mensajes: 2.329
Aprende todo lo que este a tu alkance
|
huerto123: put the source code, we need see the code to attempt help you
CarWarlock: ahora si va, muy buen link, alguien probo el driver ya?
saludox
|
|
|
En línea
|
|
|
|
CarWarlock
Desconectado
Mensajes: 19
|
Buenas.
Yo mismo lo he probado, por ejemplo programas basados en MS-DOS en los que usaba el puerto paralelo, con este driver en el XP me han funcionado sin nigún problema, doy fe de ello.
Saludos
Carmelo.
|
|
|
En línea
|
|
|
|
andesgui
Desconectado
Mensajes: 9
|
Hola. Yo estuve programando el puerto paralelo desde delphi con la libreria InpOut32.dll bajo win xp y 2003 el tema era que en una maquina me andaba y en la otra no (las 2 con winxp) cuando volvi a la que andaba me di cuenta que el archivo Inpout32.dll ocupaba mas asi es que lo lleve a la otra maquina en la que no andaba y salio corriendo lo mas bien. Asi que verifiquen que tengan la ultima version de ese archivo, en mi caso ocupa 32.768 bytes a comparacion de 27.648 que fue la que baje en la otra maquina (la que no andaba). Aqui pongo el codiogo que use en delphi, (para Trinchera que preguntaba) por supuesto que hay que poner el archivo inpout32.dll en la misma carpeta que el proyecto o en su defecto en la carpeta de sistema, si no, no anda. Espero que les sea de utilidad
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, ExtCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Timer1: TTimer; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Label1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm} function inportb(EndPorta: Integer): BYTE stdcall; external 'inpout32.DLL' name 'Inp32'; procedure outportb(EndPorta: Integer; Valor:BYTE); stdcall; external 'inpout32.DLL' name 'Out32';
procedure TForm1.Button1Click(Sender: TObject); begin outportb($378,255); //pone el byte del puerto paralelo D0...D7 en alto (5 volts) end;
procedure TForm1.Button2Click(Sender: TObject); begin outportb($378,0); //pone el byte del puerto paralelo D0...D7 en bajo (0 volts) end;
procedure TForm1.Label1Click(Sender: TObject); begin Label1.Caption := IntToStr( inportb($379) ); //lee el byte de STATUS end;
end.
|
|
|
En línea
|
|
|
|
andesgui
Desconectado
Mensajes: 9
|
Necesito ayuda con algun algoritmo para que el byte de datos siga como tal y por el salgan todos los datos que queiro hacer llegar a un circuito en particular pero que ademas con algun pin del byte de status pueda generar un reloj. o sea que en ese pin la salida sea lo mas constante posible y cuadrada. mientras yo pongo a gusto y piachere los datos sin estar pendiente a cada rato de poner un bajo y alto al dicho pìn. No se si me explico bien. A ver si a alguien se le ocurre algo? desde ya gracias.
|
|
|
En línea
|
|
|
|
Jbom
Desconectado
Mensajes: 4
|
Estoy intentando hacer un programa tipo osciloscopio, lo que pasa que ando algo perdido, se programar en VB y se mas o menos como tratar con los puertos. Pero no tengo ni idea que maximo vontaje puedo meter por el puerto, aunque eso no es problema por que cuando sea mucho puedo poner un atenuador. Solo quiero saber como leo los voltios que me entran por un pin del puerto paralelo. En definitiva como tendria que abordar para hacer un osciloscopio.
Salu2
|
|
|
En línea
|
|
|
|
andesgui
Desconectado
Mensajes: 9
|
Hay varias limitaciones en construir un osciloscopio para pc por puerto paralelo. La mas importante es que no se alcanzan velocidades aceptables y por internet hay un monton de software ociloscopio por entrada de placa de sonido que llegan casi a los 40 khz en frecuencia de lectura. Por otro lado por el puerto paralelo no podes meter mas de 5 voltios, pero no podrias leer las diferencias entre 0 y 5 vols, porque trabaja digitalmente y solo reconoce dos estados el 0v nivel bajo y 5v nivel alto, para reconocer las distintas diferencias de voltaje necesitas acoplar un adc (convertidor analogico a digital) como puede ser el adc0804. en esta pagina hay un data logger o adquisidor de datos: http://www.quasarelectronics.com/3112.htm
|
|
|
En línea
|
|
|
|
andesgui
Desconectado
Mensajes: 9
|
huerto123
tu pregunta me hizo ir al primer mensaje de este hilo y al leerlo conteste parcialmente mi duda, vamos lo que dijo BADBYTE-K:
podemos ordenar cada uno de los bytes
Dataport
pin 2 - D0 pin 3 - D1 pin 4 - D2 pin 5 - D3 pin 6 - D4 pin 7 - D5 pin 8 - D6 pin 9 - D7
Statusport
pin 10 - ACK pin 11 - BUSY pin 12 - PAPER END pin 13 - SELECT IN
pin 15 - ERROR
ControlPort
pin 1 - STROBE pin 14 - AUTO FEED pin 16 - INIT pin 17 - SELECT
la parte de GND, son los tierra del 18 al 25
para saber cual pin es cual, acercate a tu puerto paralelo y te daras cuenta que a la par de cada terminal tiene su numero, cuidado con conectar al revez la cosas xD
en resumen podemos decir esto:
el Dataport se usa como salida el Statusport se usa como entrada el controlport se usa de las dos formas anteriores
por lo tanto en tu caso en vez de conectar en los pines ACK y BUSY lo conectas en dos de los pines del control port ya que desde la cpu vas a poner esos bit en uno y asi se puede. por ejemplo el cable que sale del cronografo y que va al ACK lo conectas en AUTOFEED, y el que va a BUSY lo conectas a INIT. Espero que haya sido de utilidad.
|
|
|
En línea
|
|
|
|
andesgui
Desconectado
Mensajes: 9
|
No entiendo bien lo que queres hacer. pero otra duda, que cable usas para conectar las dos pcs? un paralelo de pin a pin? o un paralelo laplink como el que hay en esta pagina: http://hwb.sunsite.dk/ca_InterLink.htmlsi el cable es pin a pin no creo que ande muy bien la cosa.
|
|
|
En línea
|
|
|
|
Jbom
Desconectado
Mensajes: 4
|
andesgui lo que yo quiero hacer es conectar la salida de una etapa de potencia de un coche para ver la onda para equializar todo el equipo. Por la tarjeta de sonido podria??
|
|
|
En línea
|
|
|
|
|
|