• Domingo 22 de Diciembre de 2024, 23:46

Autor Tema:  Recepcion Datos Binarios  (Leído 2553 veces)

cubillejo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Recepcion Datos Binarios
« en: Sábado 5 de Agosto de 2006, 00:19 »
0
estoy haciendo un programa y quiero recibir los datos binarios que me envia un microcontrolador PIC al ordenador. quiero que me salga el valor binario de lo que me ha mandado vamos. puse un codigo que encontre:

Private Sub MSComm1_OnComm()
      Dim TmpStr As String
      Dim StrLen As Long, I As Long
      Dim FileData As Byte

      If MSComm1.CommEvent = comEvReceive Then
         While MSComm1.InBufferCount > 0
            TmpStr = MSComm1.Input
            StrLen = Len(TmpStr)
            For I = 1 To StrLen
               FileData = CByte(Asc(Mid(TmpStr, I, 1)))
               ByteCount = ByteCount + 1
               Put #1, ByteCount, FileData
            Next I
            TmpStr = " "
         Wend
      End If
   End Sub

pero cambie FileData por una caja de texto porque yo queria visualizarlos en esa caja.probablemente sera una burrada pero soy recien iniciado en el tema.acepto cualquier sugerencia.gracias.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Recepcion Datos Binarios
« Respuesta #1 en: Sábado 5 de Agosto de 2006, 01:48 »
0
Citar
quiero recibir los datos binarios que me envia un microcontrolador PIC al ordenador. quiero que me salga el valor binario de lo que me ha mandado vamos. puse un codigo que encontre:

 :unsure: cubillejo este codigo que has posteado si no me equivoco lo encontraste como un truco de vb titulado como "Enviar y recibir datos binarios con MSComm" pero realmente no se refiere a que los datos se puedan ver en binario sino en bytes, el puerto serial trabaja solamente en ASCII (envio y recepcion) analizando el programa este hace una conversion en esta sentencia:
Código: Text
  1. FileData = CByte(Asc(Mid(TmpStr, I, 1)))
  2.  
pero con esto lo que se hace es que el valor ASCII que ha recibido lo pasa a su valor en decimal es decir si recibio "A" lo convierte a 65 que es su valor decimal, si recibe "B" lo convierte a 66 y asi ...
no a Binario  :( , te lo digo por que cuando yo necesitaba hacer lo mismo que tu comunicar un pic con la PC me tope con este codigo y lo probe y no me sirvio por lo que te comento, ahora no se si cuando dices ver los datos en Binario te refieres propiamente a 1 y 0 o verlos en  hexadecimal, en cualquiera de los dos casos puedo darte una mano solo es que me avises ya que por ahi tengo las rutinas.  :comp:

saludos :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

cubillejo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Recepcion Datos Binarios
« Respuesta #2 en: Sábado 5 de Agosto de 2006, 20:35 »
0
Cita de: "Tania_D"
Citar
quiero recibir los datos binarios que me envia un microcontrolador PIC al ordenador. quiero que me salga el valor binario de lo que me ha mandado vamos. puse un codigo que encontre:

 :unsure: cubillejo este codigo que has posteado si no me equivoco lo encontraste como un truco de vb titulado como "Enviar y recibir datos binarios con MSComm" pero realmente no se refiere a que los datos se puedan ver en binario sino en bytes, el puerto serial trabaja solamente en ASCII (envio y recepcion) analizando el programa este hace una conversion en esta sentencia:
Código: Text
  1. FileData = CByte(Asc(Mid(TmpStr, I, 1)))
  2.  
pero con esto lo que se hace es que el valor ASCII que ha recibido lo pasa a su valor en decimal es decir si recibio "A" lo convierte a 65 que es su valor decimal, si recibe "B" lo convierte a 66 y asi ...
no a Binario  :( , te lo digo por que cuando yo necesitaba hacer lo mismo que tu comunicar un pic con la PC me tope con este codigo y lo probe y no me sirvio por lo que te comento, ahora no se si cuando dices ver los datos en Binario te refieres propiamente a 1 y 0 o verlos en  hexadecimal, en cualquiera de los dos casos puedo darte una mano solo es que me avises ya que por ahi tengo las rutinas.  :comp:

saludos :hola:
quiero recibir el valor en binario para asi luego una vez haya obtenido los valores pasarlos yo mismo a decimal. ojala me puedas ayudar.muchas gracias.

cubillejo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Recepcion Datos Binarios
« Respuesta #3 en: Sábado 5 de Agosto de 2006, 20:38 »
0
Cita de: "cubillejo"
Cita de: "Tania_D"
Citar
quiero recibir los datos binarios que me envia un microcontrolador PIC al ordenador. quiero que me salga el valor binario de lo que me ha mandado vamos. puse un codigo que encontre:

 :unsure: cubillejo este codigo que has posteado si no me equivoco lo encontraste como un truco de vb titulado como "Enviar y recibir datos binarios con MSComm" pero realmente no se refiere a que los datos se puedan ver en binario sino en bytes, el puerto serial trabaja solamente en ASCII (envio y recepcion) analizando el programa este hace una conversion en esta sentencia:
Código: Text
  1. FileData = CByte(Asc(Mid(TmpStr, I, 1)))
  2.  
pero con esto lo que se hace es que el valor ASCII que ha recibido lo pasa a su valor en decimal es decir si recibio "A" lo convierte a 65 que es su valor decimal, si recibe "B" lo convierte a 66 y asi ...
no a Binario  :( , te lo digo por que cuando yo necesitaba hacer lo mismo que tu comunicar un pic con la PC me tope con este codigo y lo probe y no me sirvio por lo que te comento, ahora no se si cuando dices ver los datos en Binario te refieres propiamente a 1 y 0 o verlos en  hexadecimal, en cualquiera de los dos casos puedo darte una mano solo es que me avises ya que por ahi tengo las rutinas.  :comp:

saludos :hola:
quiero recibir el valor en binario para asi luego una vez haya obtenido los valores pasarlos yo mismo a decimal. ojala me puedas ayudar.muchas gracias.
quiero ver la ristra de 0 y 1 de cada caracter enviado.gracias.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Recepcion Datos Binarios
« Respuesta #4 en: Domingo 6 de Agosto de 2006, 02:59 »
0
Citar
quiero recibir el valor en binario para asi luego una vez haya obtenido los valores pasarlos yo mismo a decimal. ojala me puedas ayudar.muchas gracias.

 :hola: cubillejo como te dije antes el puerto serial solo trabaja en ascii los datos van a ser enviados y recibidos en ascii, el microcontrolador trabaja en hexadecimal al enviar un dato a la computadora por ejemplo 61(en hexadecimal claro) el puerto de la computadora al recibirlo va a recibir su equivalente en ascii "a" y si envias por ejemplo "33"h al puerto llegara su equivalente en ascii, es decir el numero "3",
el puerto solamente trabaja en ASCII no se pueden recibir datos en binario para poder verlos en binario hay que convertirlos de ascii a binario
dices que los quieres pasarlos a decimal seria una conversion de ascii a decimal es tal como estaba en el primer programa que posteaste

Citar
quiero ver la ristra de 0 y 1 de cada caracter enviado.gracias.

a continuacion te posteo la rutina para convertir el dato recibido en ascii a decimal y luego a binario (1 y 0)
Código: Text
  1.  Private Sub MSComm1_OnComm()
  2. Dim TmpStr As String
  3. Dim StrLen As Long, I As Long
  4. Dim FileData As Byte
  5. Dim endecimal, conver As Integer
  6. Dim enbinario As String
  7.  
  8. If MSComm1.CommEvent = comEvReceive Then
  9. While MSComm1.InBufferCount > 0
  10. TmpStr = MSComm1.Input
  11. StrLen = Len(TmpStr)
  12. For I = 1 To StrLen
  13. conver = Asc(Mid(TmpStr, I, 1))
  14. endecimal = conver & endecimal 'en la variable "endecimal" esta el valor ascii
  15. Next I                                       'convertido ya a decimal
  16. 'ahora que ya esta el valor en decimal  lo pasamos a binario
  17. Do While endecimal > 1
  18.  enbinario = endecimal Mod 2 & enbinario
  19.  endecimal = Fix(endecimal / 2)
  20. Loop
  21. enbinario = endecimal & enbinario
  22. 'en la variable "enbinario" queda ya el dato convertido de decimal a binario
  23. Wend
  24. End If
  25. End Sub
  26.  
  27.  
saludos  :hola:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea