TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: xerex en 14 de Marzo de 2012, 19:45:23

Título: problema con la conversion de float
Publicado por: xerex en 14 de Marzo de 2012, 19:45:23
buenas!

estoy desoxidandome nuevamente en los PIC, poco a poco voy retomando pequeños proyectos, y en este caso estoy seguro que es una tonteria, pero no consigo que un float pase a int16. El compilador es CCS. el PIC, el 12F683

Veamos, he probado a convertilo a string

sprintf(cadena,"%03.0f",  (valor_lambda / escalon_MPC));

y luego con atoi, el resultado es CERO, valor_lambda y escalon_MPC son distintos de cero y el valor mayor a 1.

He probado con el casting... mismo resultado, CERO

Para delimitar si es problema mio, he probado esto:

valor_AF=(float)2048;
write_float_eeprom(sizeof(float)*2, 2048);

Resultado, CERO.  :shock:

Se los resultados porque escribo en eeprom los valores.

¿Alguien me puede dar alguna pista? es el compilador junto con el pic? tengo otros proyectos con pic18, que los float se convierten perfectamente con el sprintf sobre un string, pero este pic.... me esta matando... no es la primera vez que tengo problemas y tengo que hacer calculos matematicos con enteros porque no me funcionan los float en el....

Gracias de antemano.

Saludos.
Título: Re: problema con la conversion de float
Publicado por: MerLiNz en 14 de Marzo de 2012, 20:43:53
el sprintf para float creo que era %.3f

Título: Re: problema con la conversion de float
Publicado por: xerex en 15 de Marzo de 2012, 04:30:16
Gracias MerLinz, pero quiero 3 digitos, sin ceros a la izquierda  y ningun decimal y la forma de hacerlo es asi, %03.0f

:)

Saludos
Título: Re: problema con la conversion de float
Publicado por: xerex en 19 de Marzo de 2012, 22:10:44
pues en vista del exito obtenido... he cambiado el pic a un 16F688, y en este si funcionan los float tan amigos mios :P

asi que supongo que CCS no compila las funciones matematicas correspondientes a float para los 12F, y por eso salen cero... snif! desechare los que tengo para otros propositos.

Saludos.