| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
Spinaker
Registrado: 02 Dic 2007 Mensajes: 3
| Publicado: 02/12/2007 6:42 am | | | Título: Dev c++ y los famosos puertos serie/paralelo |
| Estoy mirando de hacer un programa en C++ con el que controlar un motor (envio) y controlar varios sensores (recepción), para eso necesito saber que libreria hace falta y que comandos son los necesarios para enviar y recibir por el serie y el paralelo.
Como no tengo mucha idea en C++, lo primero que tenia pensado era simplemente encender un led según el valor de una variable boleana.
Pero mirando por internet y este mismo foro he visto que en Windows XP el control de los puertos es diferente a como era con el 98 o con linux. El problema está en que hay mil soluciones, pero ninguna provada o clara.
A mi me interesa hacerlo bien, sin ir añadiendo dll que modifican la seguridad del windows (ya es suficientemente inseguro) ni usar programas de terceros. Estoy seguro que en C++ tiene que haber una libreria o algún modo de acceder a los puertos sin problemas.
La solución que dan en el MSDN de microsoft es que el XP trata a los puertos serie/paralelo como si fueran archivos, hay que abrirlos, editarlos y cerrarlos. Esto es cierto? funciona?
El problema que me da este metodo es que los sensores se pueden leer con un bucle sin problemas, pero el control del motor se basa en el envio de pulsos, cuantos mas pulsos mas corre el motor. Eso quiere decir que si todo forma parte de un mismo bucle, el envio de pulsos seria irregular, ya que no enviaria pulsos mientras lee los sensores. (no se aún con que margenes de tiempo estaré por eso.)
Alguien sabe en resumen, que libreria es? y que instrucciones son exactamente las que hay que usar? |
|
| Volver arriba | |
 |
digies
Registrado: 18 Nov 2005 Mensajes: 377 Ubicación: Cono Sur
| Publicado: 02/12/2007 8:12 am | | | Título: |
| Hola
Mira estos links: [1] [2]
Un saludo |
|
| Volver arriba | |
 |
Spinaker
Registrado: 02 Dic 2007 Mensajes: 3
| Publicado: 02/12/2007 9:09 am | | | Título: |
| En el primer link sale la famosa dll de la que habla el primer post, dll que intento evitar como ya dije.
El segundo link ya lo conozco, pero no veo que libreria he de usar, solo te dice como tratar el "archivo".
Soy novato en esto del C++, un poco de ayuda no me iria mal, solo pregunto por el nombre de la libreria que me permite usar los comandos que me piermitan enviar o recibir por el serie o paralelo.
No me puedo creer que en C++ no se pueda acceder al serie o al paralelo sin hacer chapuzas. |
|
| Volver arriba | |
 |
|
trauma
Registrado: 02 Dic 2007 Mensajes: 3
| Publicado: 02/12/2007 1:15 pm | | | Título: |
| El acceso a los puertos serie/paralelo ( o puertos I/O en general ) es un tipo de acceso al hardware, no soportado directamente por C/C++ puesto que depende totalmente del sistema operativo.
Mucho me temo que tendrás que utilizar alguna librería externa, o meterte en mayores fregados; sobre todo si, como dices, tienes que enviar pulsos; para minimamente asegurarte cierta cadencia, tendrias que utilizar multitarea y cronómetros. Todo esto, por supuesto, totalmente dependiente del sistema operativo y sin soporte 'de fábrica' en C/C++.
Suerte, y ya nos contarás. |
|
| Volver arriba | |
 |
digies
Registrado: 18 Nov 2005 Mensajes: 377 Ubicación: Cono Sur
| Publicado: 02/12/2007 3:21 pm | | | Título: |
| Entonces busca en la Web algún código en assemmbler que maneje los mentados puertos e insértale en el código C. Sino migra a Linux y te aseguro que ahí si encontrarás disponibles estas librerías 
Un saludo |
|
| Volver arriba | |
 |
Spinaker
Registrado: 02 Dic 2007 Mensajes: 3
| Publicado: 05/12/2007 3:25 am | | | Título: |
| Bueno al final voy a usar la libreria Inpout32.dll, pero no acabo de entenderlo.
A mi por ahora solo me interesa saber como se enviar algo (encender un led por ejemplo), pero no se como se selecciona un puerto? ni tampoco como se le da un valor a la salida. |
|
| Volver arriba | |
 |
|
|