Conversión de Float a String con sprintf

Hola, estoy intentando imprimir en un LCD 20x2(controlador HD44780) una variable flotante con un dsPIC30F4013.
Basicamente el problema esta en convertir el valor float en String :confused:, he buscado en las librerias del mplab algo para hacerlo pero no la he encontrado.
Si alguien tiene algun algoritmo, simulación en proteus y/o codigo MPLAB c18 para algun PIC, o bien ya en MPLAB C30 para algun dsPIC,que convierta float - string en el que me pueda basar, porfavor se lo agradecería mucho.

Aca dejo código y simulación en proteus de un ejemplo parecido con un AVR y AVR studio 4, en donde se convierte una variable float a string y se imprime en una terminal, esta es una modificación de una librería de arduino.

Una duda que tengo... Microchip tiene su propia forma de representar variables float ó es igual que Atmel?:confused: (IEEE-754 :confused: :unsure: :confused:)

Cualquier ayuda que puedan darme. muchas gracias!!!
 

Adjuntos

  • flotante-string-AVR.rar
    136 KB · Visitas: 24
Hola
código en MPLAB C18 y Simulación en proteus de un ejemplo en el cual el voltaje presente (float) en un pin ADC se presenta en un LCD.
hay que mejorarla..... pero por ahora soluciona.
con pequeñas modificaciones funcionará para un dsPIC.
 

Adjuntos

  • Lcd_C18_float.rar
    70.4 KB · Visitas: 7
  • Lcd_C18_float -ADC.rar
    79.1 KB · Visitas: 5
banana.gif
:aplauso:
Hola .. entre las librerias de MPLAB C30 aparece la <libq.h>
dentro se encuentra la función void _itoaQ15(_Q15 x, char *s);
esta convierte de entero a string, el problema es que la pongo de mil maneras y no me funciona, hasta el ejemplo de microchip tampoco me funciona.
Alguien puede ayudarme?:confused:
 
Hola buenas tardes soy nuevo en este foro. Quisiera saber si alguien me puede ayudar con alguna función o idea para convertir de float a string en MPLAB 30. Estoy utilizando un dsPIC30f60..
 
Saludo a todos.
Estoy haciendo un programa en atmel studio, y necesito pasar un número de coma flotante a un array de caracteres, pero no lo logro.
Esto es lo que tengo.

#include <stdio.h>
int main void(){
char result[10];
float fnum = 3.14159;
sprintf( result, "%f", fnum );
}
aunque compila bien y si errores, al simular en proteus, el array no recibe el dato float, y muestra esto, solo muestro los primero, de resto igual.
char result [10];
result [0] ' ?'
result [1] ' \ '
result [2] ' \ '
x
x
x
Arme un protoboard, con un atmega328p y lcd, e igual no muestra nada en el, tampoco en proteus, pero si cargo cualquier variable con por ejemplo.
int prueba = 314159;. ya el lcd la saca bien. prueba de que el problema está en la función. también cargo ese mismo array con un entero, con esta función
double val = 314159;
atoi(result,val);
y si funcioma. Agradezco sugerencias.
 
Atrás
Arriba