Autor Tema: ¿Cómo puedo imprimir un caracter en forma de hexadecimal en una LCD16x2 con CCS?  (Leído 2993 veces)

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

Desconectado jkcobain

  • PIC10
  • *
  • Mensajes: 18
Hola a todos.

Estoy trabajando en un proyecto que no me funciona debido a la comunicación serial. Estoy tratando de monitorear con una pantalla LCD lo que el PIC recibe, pero la pantalla muestra cosas raras porque no hay un ascii para lo que recibe, entonces me gustaría que mostrara el hexadecimal, o el binario en la pantalla. Por ejemplo:

Digamos que el PIC recibe una 'a', y supongamos que no hay un ascii para poder visualizarla en la LCD. Lo que quiero es que la pantalla muestre ya sea '0x61', o '61', o incluso '01100001'. Cualquier cosa que me sirva para ver qué le llegó al PIC. Probé con lo siguiente y no me funcionó:

Código: [Seleccionar]
PRINTF(LCD_PUTC,"%02X", caracter);
PRINTF(LCD_PUTC,"%X", caracter); // Esto tampoco, usando la 'x' minúscula, tampoco.

Siguiendo el ejemplo de la 'a', con los códigos que puse, me muestra una 'a' en la LCD en vez de un 61.

Espero que puedan ayudarme. Gracias de antemano

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
tal ves el printf ese no soporta el paso a hexadecimal. Podrias tratar de hacer primero el paso a string y luego enviarlo.

Código: C
  1. char str[6];
  2. char caracter;
  3.  
  4. sprintf(str,"0x%02X",caracter);
  5. printf(lcd_putc,"%s",str);

Desconectado jkcobain

  • PIC10
  • *
  • Mensajes: 18
tal ves el printf ese no soporta el paso a hexadecimal. Podrias tratar de hacer primero el paso a string y luego enviarlo.

Código: C
  1. char str[6];
  2. char caracter;
  3.  
  4. sprintf(str,"0x%02X",caracter);
  5. printf(lcd_putc,"%s",str);

Funciona perfecto, muchas gracias!!!  :mrgreen:


 

anything