Hola comunidad
Estoy creando una librería en arduino, y tengo un problema con el código.
El problema es en un ejemplo para hacer fusionar la librería, estos son:
CÓDIGO SignalFilterOrder1.cpp
//filtro pasa altos con frecuencia de corte de 0.05 Hz
#include <Arduino.h>
#include <SignalFilterOrder1.h>
/// Constructor
SignalFilterOrder1::SignalFilterOrder1()
{
_v[0]=0.0;
//_v[1]=0.0;
//_v[2]=0.0;
}
/// runButterworth: Runs the actual filter: input=rawdata, output=filtered data
float SignalFilterOrder1::runButterworth(float data)
{
_v[0] = _v[1];
_v[1] = (9.999842922835e-1 * data) + (0.9999685846 * _v[0]);
return (_v[1] - _v[0]);
}
CÓDIGO SignalFilterOrder1.h
//libreria de filtro butterworth de 0.05 Hz
#ifndef SignalFilterOrder1_h
#define SignalFilterOrder1_h
#include <Arduino.h>
class SignalFilterOrder1
{
public:
SignalFilterOrder1();
int run(float data);
private:
float runButterworth(float data);
float _v[2];
};
#endif
EJEMPLO DE PRUEBA:
#include <SignalFilterOrder1.h>
SignalFilterOrder1 Filter;
int value;
float val;
float filtered;
void setup(){
Serial.begin(9600);
}
void loop(){
value = analogRead(A0);
val = value * 0.034;
filtered = Filter.run(val);
}
El tipo de error es el siguiente undefined reference to `SignalFilterOrder1::run(float)'