Estoy haciendo una librería para graficos en una TFT y me encuentro el siguiente problema.
Estos son mas o menos los pasos
En el fichero .h paso un puntero a la TFT a usar
class LED
{
public:
LED(UTFT *ptrUTFT, int, int, int, int);
void led(int);
.........
etc...............
En el fichero .cpp escribo la función correspondiente
LED::LED(UTFT *ptrUTFT,int pos_x, int pos_y, int tam, int col)
{
_UTFT = ptrUTFT;
.............
etc..........
.............
void LED::led(int encendido)
{
// Clear the screen and draw the frame
_UTFT->setColor(color);
_UTFT->fillCircle(pos_x, pos_y, tamano);
_UTFT->setColor(VGA_WHITE);
........................
etc............
En el fichero.ino declaro la clase
LED led1(&myGLCD , 30, 20, 10,VGA_RED);
etc ........
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
}
void loop()
{
// Clear the screen and draw the frame
//myGLCD.setColor(VGA_MAROON);
//myGLCD.fillCircle(20, 20, 10);
if (encendido == 1)
{
led1.led(0);
encendido = 0;
led2.led(0);
............
etc.............
El compilador me dice que esta clase no corresponden sus parámetros con la definida, porque el &myGCLD no es lo que esta definido.
De hecho aunque lo compila con errores lo carga en el Arduino pero no visualizo nada en el TFT
No comprendo porque ya que creo que lo estoy haciendo bien.
Si escribo en el .ino llamadas al TFT si se dibujan bien, por ejemplo
myGLCD.setColor(VGA_MAROON);
myGLCD.fillCircle(20, 20, 10);
luego entiendo que es que el compilador no esta mandando el puntero a la pantalla con la dirección que corresponde, porque no estoy declarándolo bien
¿Podeis ayudarme un poco? estoy hecho un lio
Gracias