TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: QIQE en 26 de Junio de 2011, 13:57:27

Título: GLCD en HITECH KS0108
Publicado por: QIQE en 26 de Junio de 2011, 13:57:27
Hola Estoy empezando con hitech y quería controlar una pantalla grafica cn el chip KS0108, navegando encontré esto CLICK CLICK (http://en.radzio.dxp.pl/ks0108/) he conseguido ponerla en marcha, con las funciones de circulo linea etc, pero la función de texto no me funciona me escribe basura, el compìlador me da este warning:

illegal conversion between pointer types
pointer to const unsigned char -> pointer to unsigned char

y el código correspondiente a ese trozo de programa es este

en el main
GLCD_WriteString("ABC 123");

y en la libreria

void GLCD_WriteChar(char charToWrite)
{
int i;

charToWrite -= 32;
for(i = 0; i < 5; i++)
  GLCD_WriteData(GLCD_ReadByteFromROMMemory((char *)((int)font5x8 + (5 * charToWrite) + i)));

GLCD_WriteData(0x00);
}
//-------------------------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------------------------
void GLCD_WriteString(char * stringToWrite)
{
while(*stringToWrite)
  GLCD_WriteChar(*stringToWrite++);
}

alguna idea de porque me da este warning???
Título: Re: GLCD en HITECH KS0108
Publicado por: Suky en 26 de Junio de 2011, 15:10:00
Por lo que veo la función implementa como parámetro un puntero a un string en memoria ram, y seguramente tu le asignas un string en memoria rom, o le escribes directamente "mensaje" lo cual no concuerda. No he utilizado Hi-tech, así que no se como trabaja con ello, pero tendrás que estudiar el tema de punteros, si soporta punteros a variables en rom y como trabajarlos para modificar la librería.


Saludos!
Título: Re: GLCD en HITECH KS0108
Publicado por: manutek en 29 de Junio de 2011, 17:22:29
No estoy seguro pero el Hi Tech para pic 16f toma los strings como constantes ,declaralos como :
Código: [Seleccionar]
const char * stringToWriteen la funcion & en el encabezado y el warning tendria que desapareser.
Saludos. :)