TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Medusa en 30 de Noviembre de 2010, 20:56:22
-
Hola, tengo la siguiente duda:
Necesito enviar un bloque de codigos HEX al hyperterminal y que este me muestre el codigo equivalente en ASCII, estoy usando el siguiente codigo, pero el hyperteminal me muestra los valores HEX pero convertidos al ASCII
int16 k;
for (k = 0; k<538; k++)
printf("%lx",read_ext_eeprom(0,k,));
Si envio el 0x32 el hyperterminal me mustra 32 y si envio el 0x43 el hyperterminal me muestra 43 lo que yo necesito es que me muestre el codigo equivalente si envio el 0x32 me muestre el "2" y si envio 0x43 me muestre "C" y asi sucesivamente.
Mi pregunta es: Necesto convertir los valores HEX a ASCII antes de enviarlos o el CCS tiene algun comando que me permita enviar directemente un codigo HEX y el hiperterminal lo reciba en su equivalente ASCII ?
-
dentro de la ayuda de ccs puedes encontrar lo relacionado con el Printf.
-
Antes de publicar mi consulta ya habia intentado darle formato segun la ayuda del CCS pero no consigo que en el hiperterminal se muestre el caracter equivalente de un dato HEX!!!
EStos son los formatos con los cuales he probado!!
%03u
%u
%2u
%5
%d
%x
%X
%4X
%3.1w
-
Deseo ayudarte, mi pregunta es, qué terminal serial usas, acaso el hyperterminal de windows?, el siow de ccs?, o cuál?
-
Hola Medusa, si lo que quieres es enviar al Hiperterminal , el valor ASCII, de un Hex(char), tendras que usar "%c", porque lo que quieres añadir es el valor ASCII del Char, prueba y luego me comentas como te fue.
PD. esto,
printf("%lx",read_ext_eeprom(0,k,));
Lo que hace es enviar al hiperterminal el valor en Exadecimal de la variable leida.
Espero haberte ayudado. :mrgreen:
-
Hola bmfranky,
Tenias razon tendras que usar "%c"
:-/ :-/ gracias por la ayuda