Autor Tema: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )  (Leído 2186 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado lopb

  • PIC12
  • **
  • Mensajes: 77
    • contactos lopb
Hola, estoy usando el programa de ejemplo EX_INTEE.C  que viene con ccs.
Ahora estoy tratando de grabar un dato hexadecimal sobre una direccion de memoria.
La grabacion se realiza pero el dato es incorrecto.
Es algo asi lo que estoy haciendo, no veo otra forma de convertir decimal a hexa... no se si hay una funcion para eso.


char valor[10];
int ivalue;
ivalue = 252;
sprintf(valor, "%X", ivalue);
write_eeprom( 5, valor );


El valor que me graba es 28 en vez de 252
any help?

Desconectado bmfranky

  • PIC16
  • ***
  • Mensajes: 165
    • La Tienda De Fran
Re: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )
« Respuesta #1 en: 24 de Noviembre de 2010, 12:13:29 »
Si los valores son menores a 255, no tienes que convertir nada,
Citar
//char valor[10];
int8 ivalue;// 0 - 255
ivalue = 252;
///sprintf(valor, "%X", ivalue); sobra no sirve de nada aqui , solo para presentar en pantalla
///                                                                                                                                  Dec Hex   Bin
write_eeprom( 5, valor );/// escribe valor de la variable en exadecimal en la eeprom o sea   252=FC=11111100

Si son mayores, tendrás que guardar los bytes por separado.
Visiten La Tienda De Fran ;-) Aqui. y mi nueva Web Aqui.

Desconectado lopb

  • PIC12
  • **
  • Mensajes: 77
    • contactos lopb
Re: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )
« Respuesta #2 en: 24 de Noviembre de 2010, 12:47:55 »
Si los valores son menores a 255, no tienes que convertir nada,
Citar
//char valor[10];
int8 ivalue;// 0 - 255
ivalue = 252;
///sprintf(valor, "%X", ivalue); sobra no sirve de nada aqui , solo para presentar en pantalla
///                                                                                                                                  Dec Hex   Bin
write_eeprom( 5, valor );/// escribe valor de la variable en exadecimal en la eeprom o sea   252=FC=11111100

Si son mayores, tendrás que guardar los bytes por separado.
ah, toma el dato y lo pasa automaticamente no?
no sabia eso.
Y para valores mas grandes, tengo que grabar en multiples direcciones no?
muchas gracias por tu ayuda

Desconectado bmfranky

  • PIC16
  • ***
  • Mensajes: 165
    • La Tienda De Fran
Re: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )
« Respuesta #3 en: 24 de Noviembre de 2010, 18:28:20 »
Recuerda ,los datos solo tienen distinción entre hexadecimal, binario, octal, decimal .. etc, para su representación, en las variables siempre balen lo mismo, no cambia, para guardar un  numero mayor por ejemplo un int 16, tendrás que guardar los dos pares de Byte, int32 4 pares, y así con cada uno de los valores, ten en cuenta, si lo lees desde un pc después, el orden en que has de guardar los Bytes, pues cada lenguaje de programación lo hace de un modo, por el Byte mas significativo delante o detrás.
Visiten La Tienda De Fran ;-) Aqui. y mi nueva Web Aqui.

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )
« Respuesta #4 en: 24 de Noviembre de 2010, 19:15:57 »
Para variables diferentes a las de 8 bits (ej. int1, int16, int32 o float), puedes usar las librerías que vienen con el CCS: internal_eeprom.c o external_eeprom.c

Saludos!
« Última modificación: 24 de Noviembre de 2010, 19:42:49 por bmb »

Desconectado lopb

  • PIC12
  • **
  • Mensajes: 77
    • contactos lopb
Re: Problema al convertir decimal a hexa (haciendo pruebas con EX_INTEE.C )
« Respuesta #5 en: 06 de Diciembre de 2010, 15:36:37 »
Barbaro, muchas gracias por las aclaraciones.
Estoy probando eso justamente, tengo problemas para reescribir la eeprom.
pero abri otro tema respecto a eso.
saludos :D