Hola estoy haciendo un medidor de revoluciones empezó con lo típico de medir la cantidad de pulsos por segundo, pero ocupo algo mas preciso así que estoy intentando obtener la diferencia de tiempo entre pulso y pulso pero tengo el siguiente error en esta linea
RPM = round((millis - anterior)/tiempo);
Siendo el error el siguiente:
Arduino:1.8.19 (Windows 10), Tarjeta:"ESP32 PICO-D4, Default, 115200, None"
C:\Users\tatom\OneDrive\Escritorio\basico_anterior\basico_anterior.ino: In function 'void pulsos()':
basico_anterior:18:14: error: invalid conversion from 'long unsigned int (*)()' to 'long unsigned int' [-fpermissive]
RPM = millis - anterior;
~~~~~~~^~~~~~~~~~
exit status 1
invalid conversion from 'long unsigned int (*)()' to 'long unsigned int' [-fpermissive]
Mi código es este:
bool auxPulso = 0;
//definen la cantidad de pulsos por vuelta y el tiempo que le corresponde
unsigned int pulsosvuelta = 1;
unsigned int tiempo = 60000/pulsosvuelta;
long unsigned int anterior;
long unsigned int RPM;
void pulsos() {
detachInterrupt(23);
if(auxPulso == 0)
{
anterior = millis();
auxPulso = 1;
}
else
{
RPM = round((millis - anterior)/tiempo);
anterior = millis();
Serial.println(RPM);
}
{
attachInterrupt(23, pulsos,RISING);
}
}
void setup() {
Serial.begin(115200);
pinMode(23, INPUT_PULLUP);
attachInterrupt(23, pulsos, FALLING);
RPM=0;
anterior=0;
Serial.flush();
}
void loop() {
}