TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: migsantiago en 29 de Enero de 2007, 16:25:33
-
Hola
Necesito imprimir un flotante en CCS que tiene el valor 9.8 por ejemplo. En la pantalla LCD quiero que lo muestre como 09.8, y pongo el código...
printf(lcd_putc,"%02.1f",flotante);
pero de todas formas sigue imprimiendo 9.8 en vez de 09.8. Ya probé con %2.1f pero hace lo mismo.
¿Qué me recomiendan?
Gracias
-
Que version de CCS usas ??
En algunas la conversion numerica no andaba del todo bien.... :-) :-) :-)
-
Hola
Uso la 3.190.
-
Lamentablemente los de CCS sacaron el listado de versiones de su pagina, pero te aconsejo buscar una version como la 3.249 que es la ultima que anda muy bien y corrije todos estos errores de formato... :mrgreen: :mrgreen: :mrgreen:
-
OK Gracias MGL :mrgreen:
-
Hola:
Aprovechando el hilo me gustaría preguntaros que tipo de conversiones hay para poner en el LCD y como se realizar, si podeis poner ejemplos con difetentes tipos de datos como string, int, float, word, byte, etc...os lo agradecería pues estoy un poco confundido con ese tema :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
Un saludete.
-
Lo que puedes hacer es lo siguiente...
(http://img413.imageshack.us/img413/4769/dibujogz6.jpg)
Por cierto MGL, tienes razón sobre la versión, hice un viaje en el tiempo gracias a webarchive.org y busqué la misma página pero cuando se leyó en 2006...
http://web.archive.org/web/20060426073030/http://www.ccsinfo.com/devices.php?page=versioninfo
En la versión posterior mejoraron el printf y %f...
3.210 A bug in the printf %f is fixed
-
Ya compilando con la versión 3.245 todavía no corrige el problemita, tendré que truquear unos comandos :(
-
migsantiago, cual es el numero maximo que tendras en la parte entera??
para asi pasarte el coddigò
-
Bueno migsantiago, como sabemos los ceros a la izquierda no tienen valor, es por ello que el compilador no los imprime. Cuando se necesitan debe hacerse por software.
Aca esta:
if (flotante>99)printf(lcd_putc,"0");
if (flotante>9)printf(lcd_putc,"0");
printf (lcd_putc,"%2.1f",flotante);
-
jejeje eso es lo que estaba pensando programarle
if(ftemp<10.0)
{
lcd_gotoxy(10,2);
lcd_putc("0");
}
else
lcd_gotoxy(10,2);
printf(lcd_putc,"%2.1f",ftemp); //muestra el voltaje a modificar
El problema está en que si se pone %02u, la pantalla sí llega a mostrar 03 por ejemplo. Con flotante simplemente no aplica.
Gracias Mouse
-
Gracias migsantiago:
Lo preguntaba pues tengo problemas al poner una cadena de carácteres que proviene del rs232 del pc en el LCD, a ver si cuando acabe los examenes retomo el trabajo y pongo en práctica los nuevos conocimientos adquiridos :D :D :D :D :D :D