[C con Clase] Ayuda Puerto Serial

D1e6o! diegogeid en gmail.com
Vie Ene 26 04:52:31 CET 2007


Antes que nada siempre agradezco a quienes se toman un tiempo en leer o
contestar mis dudas... (creo que está bien ser agradecido y saber reconocer)
así que Juan Antonio muchas gracias por todo (entre otros que leyeron)

El tema es el siguiente: (y te entiendo que no me hayas entendido.. je, no
me expliqué muy bien) estoy intentando analizar lógicamente datos
asincrónicos, que no poseen bits de stop ni de paridad ni nada por el
estilo, a eso me refería sin protocolo, ya que para eso necesitaría conectar
un microcontrolador y no, el circuito ya está armado así. Entonces debería
comuncarme con el pc y que este detecte el ancho (en tiempo) de los pulsos,
que no de error y poder almacenar en un buffer el tiempo entre un '1' lógico
y un '0' y viceversa, y a eso viene mi pregunta, como podría hacer para
lograrlo? Sé que se puede, pero no se como... El problema central es conocer
en tiempo cuando cambia de estado el pin dts, y si es posible asignarle
alguna interrupción o algo por el estilo para poder almacenar en una pila
estas duraciones.

Muchas gracias! (y perdón por expresarme mal)

Saludos!

El día 25/01/07, Juan Antonio <jalr43 en hotmail.com> escribió:
>
>  Hola Diego,
>
> no lo encuentro sentido a medir la anchura de los pulso cuanto depende
> exclusivamente de la velocidad a la que tengas configurado el puerto. Por
> ejemplo si la velocidad es de 9600 bps, es decir 9600 bits por segundo la
> anchura de cada bit que se transmite es 1/9600 = 104.16 microsegundos.
> Entonces cuando se hayan transmitido 9600 bits habrá pasado un segundo,
> 104.16 microsegundos = 1/9600 que por 9600 devuelte 1 segundo.
>
> Si los datos los vas a leer en un PC, lo que se envía por el puerto
> deberías seguir la norma RS-232, porque el puerto del PC conecta con una
> UART que se encarga de quitar de la trama los bits de comienzo y parada
> almacanando el dato resultante en una pila.
>
> Yo hicé un diseño una vez creando el protocolo RS-232 es tan fácil como
> tener la rutina de espera de un bit: poner la línea con el valor del bit,
> rutina de espera de un bit, poner el la línea el siguiente valor, etc.
> Lógicamente si los bits de parada, comienzo no son 1 ó 2, por ejemplo 1.5bits también hace falta una rutina de espea de 1/2 bit.
>
> Si explicas con más detalle tu problema quizá te pueda ayudar, es decir
> conecto en el pueto serie del PC un cacharro que cambia el valor de la señal
> que transmite sin ningún protocolo.
>
> Un saludo,
> Juan Antonio.
>
> ----- Original Message -----
> *From:* D1e6o! <diegogeid en gmail.com>
> *To:* Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
> *Sent:* Thursday, January 25, 2007 7:13 PM
> *Subject:* [C con Clase] Ayuda Puerto Serial
>
> Hola gente, bueno estoy programando un poco con el puerto serial y quería
> saber si alguien tiene ideas de esto: No de una comunicación a través de
> rs232 por el puerto serial sino sin protocolo, es decir, medir el ancho de
> los pulsos (1 y 0) para después procesarlos... Se que se puede.. pero no se
> como, tengo entendido que es por los pines rts y dtr del puerto serie pero
> como hago para saber el estado en tiempo real de los pines?...
>
> Saludos si alguien tiene algo acerca de esto cualquier cosa me sirve..!
>
> Gracias..
>
> ------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070126/a983d44c/attachment.html>


Más información sobre la lista de distribución Cconclase