Mi lcd no muestra la variable que quiero

Estoy haciendo un programa con pic y LCD y resulta que en la recta final de mi programa, mi LCD no me muestra la variable que deseo si es mayor a 10 (por ejemplo 11, el LCD me bota ';' y 10 me lo bota como ':') es solo, que si pongo un pedazo de codigo como comentario, el LCD si responde satisfactoriamente, que es lo que deberia hacer? Ayuda porfavor :( ...
 
Huele a que estás mandando el "10" a pelo en binario en lugar de mandar "1" y "0" en ascii , osea los caracteres 49 y 48 en decimal.
 
Este es mi codigo, lo subo para que lo vean, el problema esta en esta parte:

Código:
printf(lcd_putc,"\f %d minutos ",t);
en la ultima parte

si se pone en comentario la seccion:
Código:
  /*******************************Tiempo de Relajacion*************************/
   lcd_putc("\f Tiempo de \n");
   lcd_putc(" relajacion");
   delay_ms(3000);
   tier=relajacion();
   delay_ms(800);


funciona con normalidad, pero cuando se habilita no funciona
 

Adjuntos

  • New WinRAR archive.rar
    78.2 KB · Visitas: 5
Última edición:
#include <16f877a.h>
#include <math.h>
#use delay (clock=4000000)
#use standard_io(b)
#use standard_io(c)
#use standard_io(d)
#fuses XT,NOWDT,NOPROTECT
#define led pin_b0
#include <flex_lcd.c>


va asi:

#include <16f877a.h>
#include <math.h>

#fuses XT,NOWDT,NOPROTECT
#use delay (clock=4M)
#use standard_io(b)
#use standard_io(c)
#use standard_io(d)
#define led pin_b0
#include "flex_lcd.c"

cuando una libreria la usas en tu carpeta de trabajo va en comillas " "
cuando la libreria es de la libreria general del compilador va con < >

y sobre todo estas cometiendo el error garrafal de poner solo 1 caracter con
lcd_putc

lcd_putc solo escribe 1 caracter
y si lo pones printf(lcd_putc,"");
ahi si va escribir la cadena entera
 
solo era un ejemplo de como va el lcd_putc

lo que hace el printf es meter caracter a caracter en lcd_putc
si yo uso printf es para dar formato
ejemplo :

quiero escribir pi=3.1416
float pi=3.1416
para imprimir hago:
printf("pi:%f",pi);

y para mostrarlo en la LCD
printf(lcd_putc"pi:%f",pi);

es todo solo debes leer la ayuda del CCS
 
Atrás
Arriba