Autor Tema: como convertir a ASCII datos de 16 bits que entran por el puerto serie  (Leído 3320 veces)

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

Desconectado stone_gonzard

  • PIC10
  • *
  • Mensajes: 4
como convertir a ASCII datos de 16 bits que entran por el puerto serie
« en: 30 de Septiembre de 2005, 18:15:00 »
Tengo este problema.. estoy mandando datos a la pc de dos puertos

el puerto B y D, B el menos significativo y D mas siginificativo si por ejemplo B toma x30 y D toma x25 en el hyperterminal al adquirir texto se vera de manera %0 como es su equivalente en ASCII


pero yo kiero trabajar con los datos de 16 bits queenvio de 8 en 8 para qu me salga en pantalla.. valores deesde... 0 hasta 65536.. puesto que estoy capturando datos de un ADC Y NO TENGO IDEA DE COMO CAMBIAR LOS DATOS PARA QUE SALGA EL LITERAL CORRESPONDIENTE! CON 16 BITS SE ME HACE DIFICIL... estoy usando el lenguaje de ensamblador... bueno esa era mi duda...

gracias de antemanoLlorica

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: como convertir a ASCII datos de 16 bits que entran por el puerto serie
« Respuesta #1 en: 30 de Septiembre de 2005, 19:13:00 »
No estoy claro, kieres enviar un solo paquete de 16 bits o 2 de 8 bits? en cualkier caso seria de 8 en 8, para obtener el valor en 16 bits la forma seria DatoA * 256 + DatoB, suponiendo que el primer dato (DatoA) sea el byte mas significativo, el proceso lo haria el programa q recibe. Creo q la mejor forma es q desarrolles algun programa en VB o en C para q maneje ambos datos y luego haga la operacion mencionada arriba.

El hyperterminal solo se basa en la configuracion q le das y mas nada, necesitas algo mas para realizar las operaciones q dices como un programa completo

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: como convertir a ASCII datos de 16 bits que entran por el puerto serie
« Respuesta #2 en: 01 de Octubre de 2005, 05:01:00 »
El hiperterminal interpreta en ASCII todo lo que recibe. Para obtener un número entre 0 y 65535, deberás calcular el número de 16 bits en el PIC, transformarlo a BCD de 5 cifras, transformar las 5 cifras en ASCII y enviar estas 5 cifras al PC. Es la única forma de que el hiperterminal te muestre el valor numérico del ADC.

Hay rutinas matemáticas en microchip que puedes utilizar para sumar y multiplicar los números y transformarlos a BCD. Para pasarlos a ASCII simplemete sumales d"48". Luego los envias por el puerto serie.

Desconectado stone_gonzard

  • PIC10
  • *
  • Mensajes: 4
RE: como convertir a ASCII datos de 16 bits que entran por el puerto serie
« Respuesta #3 en: 02 de Octubre de 2005, 22:23:00 »
Es decir el numero binario lo convierto a unidades decenas... etc y los mando uno a uno... pero hay comandos para dividir en pics verdad? cuales? pero es restringido a multiplos de 2 creo...  esto es un poco dificil por que yo estoy programando en MPlab.. alguna sugerencia?

gracias Flash

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: como convertir a ASCII datos de 16 bits que entran por el puerto serie
« Respuesta #4 en: 03 de Octubre de 2005, 14:40:00 »
Ahh entonces si kieres transformar a BCD como dice antoniof, bueno aki en el foro hay una buena cantidad de rutinas para eso y funcionan para cualkier numero, yo se q en algun pinto del foro hay un conversor de 32 bits a 6 digitos q yo use en un proyecto en ASM, usar el buscador del foro y seguro q la encuentras.


 

anything