Sigue dandome errores el linkado
No entiendo porque este codigo no me da el error y el mio si.
void setup() {
// put your setup code here, to run once:
}
int i;
float j;
unsigned long tiempo_old;
void loop() {
// put your main code here, to run repeatedly:
dato(i,2000);
i++;
dato(j,1000);
}
template <typename tipo>
void dato(tipo& dat, int tiempo)
{
if (millis() > (tiempo_old + tiempo))
{
Serial.print(dat);
tiempo_old = millis();
}
}
Ese codigo lo compila perfectamente
pero si compilo esto en el cpp
template <typename tipo>
void V_DATOS::dato(tipo& dat, int tiempo)
{
if (millis() > (tiempo_old + tiempo))
{
tiempo_old = millis();
}
}
declarandolo dentro de su clase en el .h asi
class V_DATOS
{
public:
V_DATOS(MCUFRIEND_kbv* prtTFT, TouchScreen* TouchScreen,TECLADO* Teclado);
void ventana(int x, int y, int tipo_variable,int num_digitos,int tipo_marco, uint16_t f_col, uint16_t t_col);
template <typename tipo>
void dato(tipo& dat, int tiempo);
float introducir_dato(float dat);
int introducir_dato(int dat);
private:
int pos_x;
int pos_y;
int pixel_x;
int pixel_y;
int tamano_x, tamano_y;
int tamano_letra;
uint16_t f_color, t_color;
int tip_var;
int digitos;
unsigned long tiempo_old;
bool teclado_on;
bool Touch_getXY(void);
protected:
MCUFRIEND_kbv* _tft; // nuevo denominacion del puntero para esta libreria
TouchScreen* _ts; // denminacion de puntero para la tactil
TECLADO* _teclado;
};
me da error el linkado en la llamada a la funcion del programa de uso
ERROR
Compiling 'Ejemplo_Ventana_Datos_MCUFRIEND' for 'ATmega2560 (Mega 2560) (Arduino Mega)'
cc6kmpQU.ltrans0.ltrans.o*: In function main
Error linking for board ATmega2560 (Mega 2560) (Arduino Mega)
Build failed for project 'Ejemplo_Ventana_Datos_MCUFRIEND'
(.text.startup+0xc08): undefined reference to void V_DATOS::dato<float>(float&, int)
collect2.exe*: error: ld returned 1 exit status
en el programa se usa asi
vent_datos_2.dato(dato_f,500);
Si lo declaro como float sin los template y demas compila bien y funciona bien....pero claro tengo que escribir yna rutina igual para cada tipo de dato
La funcion no hace nada, porque es solo para probar....