mostrar variable numerica en GLCD KS0108 con CCS

Hola a todos? Estoy realizando un proyecto con GLCD grafico 128x64 basado en KS0108. Utilizo el compilador CCS y lo simulo en PROTEUS. HE posteado dos capturas una del codigo y la otra del simulador donde se puede apreciar las conexiones y tambien el resultado de la simulacion del codigo que pueden ver. Utilizo un PIC 16F877 i las librerias que el compilador me ofrece: <HDM64GS12.c> i <graphics.c>. En la segunda, hay una funcion que permite mostrar texto:

//// glcd_text57(x, y, textptr, size, color) ////
//// * Write the null terminated text pointed to by textptr with ////
//// the upper left coordinate of the first character at (x,y) ////
//// Characters are 5 pixels wide and 7 pixels tall ////
//// - size is an integer that scales the size of the text ////
//// - color is ON or OFF
muestra, empezando por las coordenadas x,y la variable textptr en el tamaño que quieres.
La variable textptr tiene que ser un string.

Mi problema es que quiero representar cantidades guardadas en variables numericas.
¿Aguien sabe como convertir en CCS un dato integer16 en un string?
o, ¿Se os ocurre como podria mostrar la varable numérica de alguna forma? ¿Hay alguna libreria por ahí..?

Muchas Gracias de antemano a todos!
 

Adjuntos

  • Dibujo.jpg
    Dibujo.jpg
    59.6 KB · Visitas: 154
  • Dibujo2.jpg
    Dibujo2.jpg
    105.6 KB · Visitas: 192
Me parece que ya he dado con la solución. Se trata de utilizar la funcion sprintf para imprimir una variable numerica en una cadena de texto. Luego envio la cadena la GLCD. Podria ser:
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#include <HDM64GS12.c>
#include <graphics.c>
#include <stdio.h>


char text2[]="r.p.m.";
char text3[]="Tm=95ºC";
char text4[]="Th=68ºC";
char text5[]="Te=27ºC";

long rpm;
char cadena_rpm[5];

#int_ext
ext_isr()
{
rpm++;
}
void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(int_ext);
ext_int_edge(L_TO_H);
glcd_init(ON);
//linea doble vertical
glcd_line(100,0,100,64,ON);
glcd_line(100,0,100,64,ON);
//linea doble horizontal
glcd_line(0,28,100,28,ON);
glcd_line(0,29,100,29,ON);
//mostre el valor de les r.p.m.
sprintf(cadena_rpm,"%lu",rpm); //imprimeix la variable rpm en la cadena de text cadena_rpm
glcd_text57(0,0,cadena_rpm,3,ON);
//mostre r.p.m.
glcd_text57(65,13,text2,1,ON);
}

Por si le puede servir a alguien!
 
Disculpen amigos del foro necesito sacar imagenes en un lcd de 128 X 64, ks0108, ahora bien tengo un pic18f2550, pero no entiendo muy bien el como sacar dicha imagen, si alguien podria ayudarme le estaria muy agradecido, porq ya estuve varias semanas en esto
 
hola a todos tengo una duda con el lcd en el codigo del ccs aparece la libreria de nombre HDM64GS12 supongo que es otro microcontrolador que maneja la pantalla compatible con el ks0108. ¿estare en lo correcto ? porke tengo una pantalla con el microcontrolador ks0108 y no me gustaria kemarla tratando de descubrirlo .

saludos
 
Despreocupate, puedes hacer todas las pruebas de codigo que requieras siempre y cuando mantengas los voltajes dentro de los niveles de operacion de la pantalla.... no se queman por enviarles codigos erroneos...
 
Atrás
Arriba