TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Medusa en 20 de Diciembre de 2010, 19:54:18

Título: Como escribir en Hex para leer en Decimal
Publicado por: Medusa en 20 de Diciembre de 2010, 19:54:18
Hola, alguien me puede dar una orientacion, estoy escribiendo en la memoria eeprom del pic una array de datos hexadecimales, luego los leo pero necesito tener estos datos en formato decimal, como puedo hacer esto?

aqui esta parte de mi codigo:
Código: [Seleccionar]
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20MHz)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)// RS232 Estándar

#include <string.h>
#include <STDLIB.H>
#include <MATH.H>

int Test[] = {0x10, 0x16, 0x10, 0x01, 0x04, 0xae, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x17, 0x85 0x00};
int j;

int Buffer[3];
int16 Pag;

void main(){

       for (j = 0; j<2; j++)
            write_eeprom( j, Test[13+j]);

       for (j = 0; j< 2; j++)
            Buffer[j] = read_eeprom(j);

       Pag =  atol(Buffer);

while (TRUE);

}
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: Suky en 20 de Diciembre de 2010, 20:17:53
 :z) Necesitas crear un string con formato decimal?

Si guardas una variable de 16-bits y luego quieres "re-armarla", usa make16... Lees los 2 bytes que forman la variable, y luego implementas make16. Utiliza la ayuda de CCS para infórmate de make16 y utiliza el buscador.


Saludos!
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: cristian_elect en 21 de Diciembre de 2010, 12:15:15
Te refieres al codigo BCD en cada 4bits no pasa de 9.
37=    0011 0111
0x56= 1000 0110
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: Medusa en 21 de Diciembre de 2010, 16:53:29
En este caso he escrito y leeido los elementos 13 y 14 del array en la memoria eeprom, estos elementos (0x17, 0x85) son parte del numero (0x1785)  y su equivalente decimal seria 6021, yo necesito tener este valor decimal en una variable para realizar operaciones matematicas, necesito hacer esta conversion por que los otros elementos con los cuales deseo hacer la operacion estan en decimal, como puedo hacer esto?  :huh:
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: LABmouse en 21 de Diciembre de 2010, 16:59:51
con make16 de CCS, fijate en la ayuda de CCS que esta bien explicado, cualquier cosa, comentas.

SALUDOS!

Claro que si quieres el ANSI-C que te recomiendo mas, seria asi:

Código: C
  1. make16(ValueH,ValueL)  
  2.  
  3. (UINT16)((ValueH & 0xFF)<<8)|(ValueL & 0xFF)
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: Medusa en 21 de Diciembre de 2010, 17:08:17
Hola LABmouse ; con make16 resolvi mi problema  :-/   :-/
Título: Re: Como escribir en Hex para leer en Decimal
Publicado por: Suky en 21 de Diciembre de 2010, 19:05:01
Si guardas una variable de 16-bits y luego quieres "re-armarla", usa make16... Lees los 2 bytes que forman la variable, y luego implementas make16. Utiliza la ayuda de CCS para infórmate de make16 y utiliza el buscador.

 :?


Aunque como LABmouse, recomiendo usar ANSI C, para los que crezcan en aplicaciones embebidas y se alejen de CCS  :D