/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Dev c++ y los famosos puertos serie/paralelo

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Spinaker



Registrado: 02 Dic 2007
Mensajes: 3

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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 Wink

Un saludo
Volver arriba
Spinaker



Registrado: 02 Dic 2007
Mensajes: 3

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com