<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3020" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>
<DIV><FONT face=Arial size=2>Hola,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>gracias Steven por la aclaración y Diego de nada,
aquí estamos todos para ayudarnos.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Diego yo en tu caso vería la opción de usar el
puerto paralelo en vez del serie. Conectaría la línea en la que se van a
producir los cambios en el pin de datos menos significativo (LSB). Luego
deberías establecer la frecuencia con la que quieres muestrear la la línea, es
decir leer los datos del puerto a partir del conocimiento de tu dispositivo,
porque supongo que puedes estimar una frecuencia de muestreo para no cometer
mucho error en las medidas de la anchura de los pulsos. Ojo en un puerto serie
que sigue la norma RS-232 la tensiones oscilan entre +15 y -15V, el puerto
pararalelo trabaja con 0 y 5V, aunque lo mismo si tu dispositivo no transmite
con ningún protocolo tampoco sigue los niveles de tensión del
RS-232.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Para hacerlo con puerto serie, para que el PC se
entere que le quieres enviar datos la señal tiene que pasar de '1' (entre -3 y
-15V) a '0' (de 3 a 15V) que es el bit de inicio o los que hayan, para decirle
que el dato termina se necesita enviar los bits de parada (paso de '0' a '1')
establecidos al configurar la comunicación. Entonces claro se podría usar una
función para ver si hay datos en el puerto, mientrás no hayan la señal ha
permanecido a '1' por lo que la puedes contar el tiempo a partir de la velocidad
de transmisión. Mi duda es la señal cambia de '1' a '0', la UART empieza a
muestrear, pero si la señal no vuelve a pasar de '0' a '1' en el tiempo
configurado del puerto (que se obtiene a partir de la velocidad) para indicar
los bits de parada después de los bits de datos, sobrescribirá los datos
anteriores o ocurrirá algún error.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Lo mismo también puedes usar alguna de las líneas
de control como mencionastes en el primer mensaje, navega, busca su significado,
si son compatibles en voltios con tu entrada y con qué función puedes
leerlas.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Espero que te sirva.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Un saludo,</FONT></DIV>
<DIV><FONT face=Arial size=2>Juan Antonio.</FONT> </DIV></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=diegogeid@gmail.com href="mailto:diegogeid@gmail.com">D1e6o!</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=cconclase@listas.conclase.net
href="mailto:cconclase@listas.conclase.net">Lista de correo sobre C y C++</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, January 26, 2007 4:52
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [C con Clase] Ayuda Puerto
Serial</DIV>
<DIV><BR></DIV>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)<BR><BR>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. <BR><BR>Muchas gracias! (y perdón por expresarme
mal)<BR><BR>Saludos!<BR><BR>
<DIV><SPAN class=gmail_quote>El día 25/01/07, <B class=gmail_sendername>Juan
Antonio</B> <<A href="mailto:jalr43@hotmail.com">jalr43@hotmail.com
</A>> escribió:</SPAN>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV bgcolor="#ffffff">
<DIV><FONT face=Arial size=2>Hola Diego,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.5 bits también hace falta una rutina de espea de 1/2
bit.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Un saludo,</FONT></DIV>
<DIV><FONT face=Arial size=2>Juan Antonio.</FONT></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
<DIV><SPAN class=e id=q_1105bc790939ccd4_1>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal">-----
Original Message ----- </DIV>
<DIV
style="BACKGROUND: rgb(228,228,228) 0% 50%; FONT: 10pt arial; font-size-adjust: none; font-stretch: normal; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"><B>From:</B>
<A title=diegogeid@gmail.com
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:diegogeid@gmail.com" target=_blank>D1e6o!</A> </DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><B>To:</B>
<A title=cconclase@listas.conclase.net
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:cconclase@listas.conclase.net" target=_blank>Lista de correo
sobre C y C++</A> </DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><B>Sent:</B>
Thursday, January 25, 2007 7:13 PM</DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><B>Subject:</B>
[C con Clase] Ayuda Puerto Serial</DIV>
<DIV><BR></DIV>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?... <BR><BR>Saludos si alguien tiene algo acerca de esto
cualquier cosa me sirve..! <BR><BR>Gracias..<BR></SPAN></DIV>
<P></P>
<HR>
<P></P>_______________________________________________<BR>Lista de correo
Cconclase <A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Cconclase@listas.conclase.net"
target=_blank>Cconclase@listas.conclase.net</A><BR><A
onclick="return top.js.OpenExtLink(window,event,this)"
href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net"
target=_blank>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</A><BR>Bajas:
<A onclick="return top.js.OpenExtLink(window,event,this)"
href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ"
target=_blank>http://listas.conclase.net/index.php?gid=2&mnu=FAQ</A>
<P></P></BLOCKQUOTE></DIV><BR>_______________________________________________<BR>Lista
de correo Cconclase <A
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</A><BR><A
onclick="return top.js.OpenExtLink(window,event,this)"
href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net"
target=_blank>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</A><BR>Bajas: <A onclick="return top.js.OpenExtLink(window,event,this)"
href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ"
target=_blank>http://listas.conclase.net/index.php?gid=2&mnu=FAQ</A><BR><BR></BLOCKQUOTE></DIV><BR>
<P>
<HR>
<P></P>_______________________________________________<BR>Lista de correo
Cconclase
Cconclase@listas.conclase.net<BR>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>Bajas:
http://listas.conclase.net/index.php?gid=2&mnu=FAQ</BLOCKQUOTE></BODY></HTML>