Hola hhpp
Pues, segun lo que vi en tu programa, RTSHold esta puesto a 1, si bien recuerdo, creo que eso es para que se dispare el evento cada vez que recibes un byte en el buffer.
No se mucho de vb, pero pienso lo siguiente, si vos recibis digamos 6 bytes, donde el primero es del canal a, y su dato, luego el canal b y su dato, y finalmente el canal c y su dato, entonces cuando recibes el primer byte correspondiente a la etiqueta que usaste para el canal A, podria ser probable que el evento no termine de procesar el dato cuando el pic ya te envio otro byte y se volvio a disparar el evento.... puede ser problemas de ese tipo.
es por eso que en ocasiones se utiliza el control de flujo, pero que te parece lo siguiente:
Primero cerciorate que el PIC haga lo suyo, si tienes el programa en ensamblador, usa el mplab para simularlo y ver que efectivamente tome las muestras cada cierto tiempo que hayas establecido, esto es lo mas mportante quizas, ya que si no funciona esta etapa, no sabras ni que pex mas delante...
En segundo lugar, si cada 500 milisegundos vas a recibir digamos los 6 bytes, tal como lo mencione antes ( pueden ser los que quieras, pero debes estar conciente de la cantidad total) entonces ajusta tu RTSHold a ese numero, así, cuando recibas todos los datos completos, de cada uno de los canales, empezaras a procesarlos, ya que en ese peiriodo de tiempo, tendras aproximadamente 500 mS en los cuales el PIC no te enviara nada mas, y el VB tendra el tiempo suficiente para procesar los datos del buffer sin que se vuelva a disparar el evento del MSComm.
Como recomendacion, vos estas mezclando caracteres con datos binarios, por lo cual te recomiendo que leas byte por byte del buffer, porque, digamos que recibes los siguientes datos : A35 , donde el 35 es un numero decimal, pues en realidad lo que recibirias seria el codigo del caracter A, y el 35 codificado en binario, pues si lees 2 bytes, el VB te lo va a manear de una manera extraña, al menos distinto de como lo deseas hacer, es por eso que si lo lees de byte por byte, no te dara problemas, asi me sucedio a mi, y asi lo arregle.
Es una opinion, y espero te ayude en algo..
