Autor |
Mensaje |
nono
Nivel 2
Registrado: 03 Sep 2005
Mensajes: 17
Ubicación: Provincia BsAs (Zona Norte)
|
|
Buenas. . . espero q este foro siga creciendo pues puede ser de mucha ayuda para nos los estudiantes.
Mi consulta: alguien podria informarme sobre como manejar el puerto paralelo con el lenguaje C o C++. Yo quiero recibir datos y armar una tabla a partir de ellos, se puede? muy complicado?
Muchas gracias.
--ilnono00--
|
|
|
|
|
|
|
|
|
Claus
Fundador
Edad: 41
Registrado: 17 May 2005
Mensajes: 1647
Ubicación: Capital Federal
Carrera: Industrial
|
|
Buenas nono. Mirá, se que no tengo la posta, y es mas, estoy lejos de tenerla ya que no es la carrera que estoy siguiendo. De todas formas, creo que lo que podrias buscar en google sería interfaz analógico/digital (Interfaz A/D). Depende de lo que quieras recibir como datos, casi seguro necesitaras un circuito que digitalice dicha informacion. TEngo un par de articulos en mi poder para creacion de interfaz A/D usando el CI ADC0804, para usarla por ej para prender aparatos electrónicos (a traves de relés), o recibir datos de por ej una sonda de temperatura.
En internet debe sobrar informacion al respecto, o sino, las revistas Power USR a partir de la #22 tienen articulos del tema. En éstos artículos, el codigo fuente está escrito para Visual, por eso sé que no te va a servir, pero para visual se usa la libreria io.dll.
En fin, espero que esta info, que si bien no es específicamente lo que buscabas, te sirva como punto de partida.
Ya aparecera alguien que sepa realmetne del tema y nos desasne.
Saludos
Claus
|
|
|
|
_________________ Tema Libre no es Libertinaje
---------------
SpiderMan is having me for dinner tonight
|
|
|
|
|
Fhran
Administrador
Edad: 39
Registrado: 25 Ago 2005
Mensajes: 3123
Ubicación: En la rama de un árbol... entre locos.
Carrera: Electrónica y Informática
|
|
**************
Conozco un amigo que quiza sepa sobre esto, mañana le pregunto.
En lo que si te puedo ayudar es en la lectura de puerto paralelo desde QBasic o VisualBasic porque hace un tiempo me arme un display de 8 leds para boludear y los manejaba desde esos lenguajes.
Pero quiza lo que buscas es para C/C++, asi que cualqueir cosa avisame.
***************
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
En ninguno de los dos posts que hacés sobre C/C++ veo que aclares algún standard o algo...
En C/C++, incluso en ANSI se puede manejar el puerto paralelo... sólo que es algo de muy bajo nivel.
El puerto es una posición más de memoria y es simplemente operar sobre los bits seteando y deseteando máscaras, el trabajo lo hace el sistema operativo y para vos es transparente.
El único problema dentro de los stándares es que no tenés ninguna función del tipo sleep() entonces se hace molesto el manejar el sincronismo (puede implementarse de todos modos).
La respuesta es, sí, se puede (aplicalo también al thread sobre gráficas) pero fuera de los stándares y con toda la pérdida de portabilidad que eso conlleva. Por otro lado, ¿vale la pena escribirlo desde cero?; a menos que tengas que hacer algo muy dedicado, no creo que valga la pena. Yo googlearía por bibliotecas que ya lo tengan implementado, hay miles.
Saludos.
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Por si a alguno le interesa, pasteo lo que le respondió a Nono en la lista de Algoritmos II el Ingeniero Leandro Santi:
Ing. Leandro Santi escribió:
|
> 1°) Estoy buscando info acerca de como manejar el
> puerto paralelo de la PC con el lenguaje C o C++.
> Quiero leer datos a traves del puerto y armar una
> tabla de valores con ellos.
o Lee el capitulo 9 y busca ``ioperm'' en el glosario:
http://www.oreilly.com/catalog/linuxdrive3/book/index.csp
o Busca el libro ``paralell port complete'', quizas este online.
o Tambien podes leer directamente de las especificaciones tecnicas de
los chipsets, generalmente bajo el nombre de ``super i/o''. En su
momento era la mejor fuente de informacion, ya que casi siempre se
incluyen los diagramas de tiempo, registros y pinouts. Creo tener,
en alguna parte, algunos pdfs.
o Google.
(Consejo: no uses el puerto paralelo; no solo apesta como interfaz,
sino que ademas es viejo, obsoleto y afortunadamente ya no se incluye
como parte de los diseños nuevos. Mejor busca otra forma de resolver
el problema).
> 2°) Si tengo dos arreglos de numeros (digamos "X" e
> "Y"), se puede trazar la curva correspondiente XY con
> C o C++?
Si, consulta con gente que haya cursado en el 2004, ya que hubo un
TP en donde tenian que dibujar curvas parametricas en C++.
Leandro.
|
|
|
|
|
|
|
|
|
|
Lubi
Nivel 2
Edad: 39
Registrado: 21 Sep 2005
Mensajes: 7
Carrera: Electrónica
|
|
Aca tengo un archivo sobre el puerto paralelo en C, espero que les sirva.
|
parallel.pdf |
Descripción: |
|
Download |
Nombre de archivo: |
parallel.pdf |
Tamaño del archivo: |
76.49 KB |
Bajado: |
2875 vez |
|
|
|
|
|
|
|
|
Fhran
Administrador
Edad: 39
Registrado: 25 Ago 2005
Mensajes: 3123
Ubicación: En la rama de un árbol... entre locos.
Carrera: Electrónica y Informática
|
|
**************
Retomo el tema del Puerto Paralelo porque ando con problemas.
Con unos amigos armamos una tira de 8 leds para ser controlados por software (cosa que ya habiamos hecho antes sin ningun tipo de problemas como dije en un post anterior)
Lo que sucede ahora es que no podemos controlarlo de la misma manera que lo haciamos antes. Una vez conectado, los leds estan todos prendidos... lo que equivale a un 255 en la salida de datos. Desde QBasic le doy valores distintos pero no responde... siguen todos prendidos.
Lo primero que se nos ocurrio es que la direccion del puerto habia cambiado, entonces empezamos a probar todos (los 65535) con FOR's y cosas por el estilo. No hubo caso. Siguen prendidos.
Lo que quisiera saber es si yo ESCRIBO en el puerto el valor X, ¿deberia recibir X cuando LEO del puerto? o son dos cosas distintas.
************
|
|
|
|
_________________
El horóscopo del ingeniero es un poco más amplio. Se compone de Amor, Dinero, Salud, Simetría y Linealidad Causa-Efecto.
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Fhran escribió:
|
Lo primero que se nos ocurrio es que la direccion del puerto habia cambiado, entonces empezamos a probar todos (los 65535) con FOR's y cosas por el estilo. No hubo caso. Siguen prendidos.
|
No, suele ser standard, es la que ves cuando prendés la máquina y carga la BIOS (bah, yo uso máquinas que lo hacen en ASCII...)
Fhran escribió:
|
Lo que quisiera saber es si yo ESCRIBO en el puerto el valor X, ¿deberia recibir X cuando LEO del puerto? o son dos cosas distintas.
|
Sí, porque no estás escribiendo en el puerto ni leyendo de él, estás usando una interfaz y el que hace el laburo es el sistema operativo (o el micro).
Para vos debería ser transparente y comportarse como una posición en memoria; en realidad no la es.
|
|
|
|
_________________
|
|
|
|
|
Fhran
Administrador
Edad: 39
Registrado: 25 Ago 2005
Mensajes: 3123
Ubicación: En la rama de un árbol... entre locos.
Carrera: Electrónica y Informática
|
|
*************
Entonces ¿como puede ser que cuando leo de la direccion h378 (888), me devuelve 170, pero los leds estan todos prendidos?
Desde QBasic:
Código:
|
CLS
PRINT INP(888)
PRINT INP(889)
PRINT INP(890)
|
Salida:
**************
|
|
|
|
_________________
El horóscopo del ingeniero es un poco más amplio. Se compone de Amor, Dinero, Salud, Simetría y Linealidad Causa-Efecto.
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
¿No habrá cambiado la disposición de los pines en el cable?
Ahora no tengo a mano ninguna tabla de los pines del puerto... ¿probaste prenderlo completo y apagarlo completo a ver si eso refleja algo?
|
|
|
|
_________________
|
|
|
|
|
Fhran
Administrador
Edad: 39
Registrado: 25 Ago 2005
Mensajes: 3123
Ubicación: En la rama de un árbol... entre locos.
Carrera: Electrónica y Informática
|
|
************
Si, probe de todo.
El DB-25 es el mismo que antes funcionaba. Aunque es un poco desprolijo. ¿Te parece que algun falso contacto entre los cables pueda provocar esto?
************
|
|
|
|
_________________
El horóscopo del ingeniero es un poco más amplio. Se compone de Amor, Dinero, Salud, Simetría y Linealidad Causa-Efecto.
|
|
|
|
|
falcald
Nivel 8
Edad: 39
Registrado: 04 Mar 2006
Mensajes: 790
Ubicación: Castelar
Carrera: Electrónica
|
|
Cita:
|
Entonces ¿como puede ser que cuando leo de la direccion h378 (888), me devuelve 170, pero los leds estan todos prendidos?
|
Si estás usando Win XP esto no es asi. No me preguntes porque, porque no se porque. El maldito no deja acceder a ningun puerto directamente. Según vi muuyy por encima en una página, hay que trabajar a travez de una DLL o usar funciones de un archivo .SYS o algo así...
Hace tiempo habia hecho una interfaz para el LPT con relés, manejada con QB tambien, y andaba a la perfección (En ese entonces con Win 98 ). Ahora que tengo el XP ni se mosquea con el programita de QB. La única forma en la que la pude hacer andar fue usando VisualBasic y la io.dll que mencionaron antes.
La solución creo yo seria conseguir (O hacer, si es que sabes) una dll parecida a la io.dll y manejarlo así desde C o C++. O bien, cambiar el sist. operativo.
Espero que te haya sido útil mi experiencia.
|
|
|
|
|
|
|
|
|
Fhran
Administrador
Edad: 39
Registrado: 25 Ago 2005
Mensajes: 3123
Ubicación: En la rama de un árbol... entre locos.
Carrera: Electrónica y Informática
|
|
**********
Te cuento que tengo hecho en VB un bello programita con colorcitos que usa la io.dll y a la mínima que hago, se tilda todo.
Gracias!
**********
|
|
|
|
_________________
El horóscopo del ingeniero es un poco más amplio. Se compone de Amor, Dinero, Salud, Simetría y Linealidad Causa-Efecto.
|
|
|
|
|
deimon
Nivel 5
Edad: 38
Registrado: 14 Ago 2005
Mensajes: 168
Ubicación: Quilmes
Carrera: Electrónica
|
|
intenté bajar el pdf que habían subido de puerto paralelo en C, pero no pasa nada. Alguien sabe que puede ser? o si sacaron el archivo?
Gracias
|
|
|
|
|
|
|
|
|
Claus
Fundador
Edad: 41
Registrado: 17 May 2005
Mensajes: 1647
Ubicación: Capital Federal
Carrera: Industrial
|
|
deimon escribió:
|
intenté bajar el pdf que habían subido de puerto paralelo en C, pero no pasa nada. Alguien sabe que puede ser? o si sacaron el archivo?
Gracias
|
Que error te tiro?, recien lo bajé sin problemas....
|
|
|
|
_________________ Tema Libre no es Libertinaje
---------------
SpiderMan is having me for dinner tonight
|
|
|
|
|
|