TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: jdaniels en 22 de Septiembre de 2007, 18:35:59
-
Saludos una pequeña duda, estoy empezando a leer mas sobre Vb a fin de aprender a utilizarlo, y he leido las velocidades que admite el puerto serial, ahora bien si yo trabajo a 115.2Kbps con el pic, no puedo usar esa velocidad porque en VB muestra que puede ser 56000 y 128000?
-
Hola
No es recomendable usar velocidades mayores a 19200bps porque corres el riesgo de que el ruido electromagnético destruya el tren de pulsos y se incremente el nivel de errores en la comunicación.
Además el pic no siempre es capaz de entregar trenes de información continuos a 56kbps, principalmente si transmites variables pesadas como las flotantes, que tarda más en convertirlas de flotante a código ascii.
:o
-
No tienes mas que poner algo por el estilo a esto cuando inicializas el form (form.inicializate)
COM1.setbaudrate=115200; Tienen que tener alguna propiedad del componentes para hacerlo en tiempo de ejecución.
Aunque como dice migsantiago no es muy recomendable si vas a usar variables muy pesadas del tipo float aunque si te sirve de algo yo uso dicha velocidad y variables flotantes y funciona :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: pero no te pasas enviando variables flotantes.
Un saludete.
-
No, voy a enviar caracteres nada mas, otra pregunta super tonta veo en varios ejemplo que ponen Me.caption en un form pero el nombre del form no es Me (deberia ser el nombre del form no?) es otro, porque entonces ponen la palabra Me? gracias por responder
-
¿Cuánto tú te refieres a ti mismo utilizas tu nombre propio o simplemente dices "yo"?
Pues en VB es igual, cuando las cosas pasan dentro de un Form, se puede abreviar llamándole "Me". Eso te permite que las mismas funciones sirvan para otros formularios sin cambiar nada el código.
-
Hola
Solo me gustaría decir que cuando se mandan tramas de valores flotantes muy largas el pic no deja de mandarlas correctamente jeje, solo tarda más en procesarlas. Por ejemplo, si la velocidad de transmisión es de 56kbps, una trama de 320 bytes tardaría...
56kb/s = 7kB/s
Si son 320 bytes...
320B / (7kB/s) = 0.3125s = 312.5ms
Pero en lo que el pic convierte de flotante a ascii se va a tardar más de los 312ms, puede que llegue a 500ms, todo dependerá de la velocidad a la que esté trabajando el procesador del pic.
:)
-
sería interesante introducir tecnicas de detección y correción de errores para comprobar hasta que velocidades se puede llegar.
-
Siempre he programado el puerto serial en lenguaje C, nunca en ensamblador, pero creo que la velocidad de transferencia depende de la velocidad del cristal y de una fórmula como la del PWM, pero para RS232.
-
Bueno migsantiago esa formula debería expresar en cuanto ciclos de reloj el pic efectúa el cambio de flotante a asci, porque si le pide mucha velocidad y le pones un cristal bajo no lo hace, digo yo no se...
Nocturno gracias pensé en eso pero preferio preguntar que andar comiéndome las uñas, gracias
-
Si sirve de algo como referencia realicé una comunicación con un pic por usb a través de un VCP de FTDI a 115000 baudios y enviaba tramas de datos de de 8 caractares a una velocidad de 50ms y el pic los recibia. Ciertamente sería de buen grado tener información sobre la formulita a aplicar como maxima velocidad dependiendo del cristal del micro.
Es una propuesta :mrgreen: :mrgreen: :mrgreen: