Autor Tema: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s  (Leído 2996 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Hola chicos recurro de nuevo a ustedes por que no puedo lograr recibir unas cadenas por el puerto serie. la cosa es asi

Mando por el microcontrolador una serie de datos separados por un espacio.

Código: CSS
  1. set_adc_channel(0);
  2.            delay_us(10);
  3.            DatoNivel=read_adc();
  4.        
  5.            set_adc_channel(1);
  6.            delay_us(10);
  7.            Tempe=read_adc();
  8.        
  9.            set_adc_channel(2);
  10.            delay_us(10);
  11.            DatoVel=read_adc();
  12.        
  13.            set_adc_channel(3);
  14.            delay_us(10);
  15.            DatoVoltaje=read_adc();
  16.        
  17.            set_adc_channel(4);
  18.            delay_us(10);
  19.            DatoCorri=read_adc();
  20.                
  21.  
  22.                    if(send){
  23.            printf("%Lu %Lu %Lu %Lu %Lu \n\r",DatoNivel, Tempe, DatoVel, DatoVoltaje, DatoCorri);
  24.                    }

Y pues los recibo en VB6, el cual recibe bien los datos, pero tengo muchos problemas con la sincronizacion de los datos :

El codigo que tengo en Visual es el siguiente

Código: Visual Basic
  1. Private Sub MSComm1_OnComm()
  2. Dim i As Integer
  3. Dim Valor As String
  4. Dim MiCadena, Cadena As String
  5.        
  6. If MSComm1.CommEvent = comEvReceive Then
  7.        
  8.         Valor = MSComm1.Input
  9.         Texto_Recibido.Text = Valor
  10.        
  11.         i = InStr(Valor, Chr(13))
  12.        
  13.         If i = 0 Then
  14.             Cadena = Cadena & Valor
  15.         Else
  16.        
  17.         Cadena = Cadena & Left(Valor, i)
  18.        
  19.         Texto_Recibido.Text = Cadena
  20.         MiCadena = Split(Cadena, " ", -1, 1)
  21.         Text1.Text = Val(MiCadena(0))
  22.         Text2.Text = Val(MiCadena(1))
  23.         Text3.Text = Val(MiCadena(2))
  24.         Text4.Text = Val(MiCadena(3))
  25.         Text5.Text = Val(MiCadena(4))
  26.         'Cadena = ""
  27.        End If
  28.         Valor = MSComm1.Input
  29.  
  30. End If
  31.  
  32. If MSComm1.CommEvent = comEvSend Then
  33.    Texto_Mensajes = "0"
  34. End If
  35.  
  36.  
  37. End Sub

El problema es que de repente al poner la informacion ya separada. la primera vez que recibe lo hace bien pero despues cuando vuelvo a mandar mas datos llegan menos y se me causa un error en las cajas de texto.


Thera are someone who can help me?

« Última modificación: 07 de Septiembre de 2006, 13:31:25 por pantera »
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s
« Respuesta #1 en: 08 de Septiembre de 2006, 00:01:18 »
A ya esta la solucion a mi problema
queda muy chido

Código: Visual Basic
  1. Private Sub MSComm1_OnComm()
  2. Dim i As Integer
  3. Dim Valor As String
  4. Dim MiCadena, Cadena As String
  5.        
  6. If MSComm1.CommEvent = comEvReceive Then
  7.  
  8.         Valor = LoQueQueda + MSComm1.Input
  9.        
  10.         i = InStr(Valor, Chr(13))
  11.         LoQueQueda = Mid$(Valor, i + 1)
  12.        
  13.        
  14.         If i = 0 Then
  15.             'Cadena = Cadena & Valor
  16.        Else
  17.        
  18.         Cadena = Left(Valor, i)
  19.        
  20.         Texto_Recibido.Text = Cadena
  21.         MiCadena = Split(Cadena, " ", -1, 1)
  22.        
  23.         Text1.Text = (MiCadena(0))
  24.         Text2.Text = (MiCadena(1))
  25.         Text3.Text = (MiCadena(2))
  26.         Text4.Text = (MiCadena(3))
  27.         Text5.Text = (MiCadena(4))
  28.         Cadena = ""
  29.         End If
  30.      
  31. End If
  32.  
  33. If MSComm1.CommEvent = comEvSend Then
  34.    Texto_Mensajes = "0"
  35. End If
  36.  
  37.  
  38. End Sub


Espero que le sirva a alguien con el mismo problema
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado Blanca Sánchez

  • PIC16
  • ***
  • Mensajes: 108
    • PicsMexico: Programación con Microcontroladores
Re: Recepcion de varias palabras atravez del puerto serie ? que esta mal ? HELP :s
« Respuesta #2 en: 03 de Marzo de 2008, 14:16:58 »
Hola pantera:

Una pregunta

¿Qué es "LoQueQueda"?

¿que tipo de variable es?


 

anything