TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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???
-
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!
-
No estoy seguro pero el Hi Tech para pic 16f toma los strings como constantes ,declaralos como :
const char * stringToWriteen la funcion & en el encabezado y el warning tendria que desapareser.
Saludos. :)