Buenos dias:
Estoy realizando un cronometro al cual quiero ponerle que valla guardando los distintos cronometrajes, por ejemplo 10 y una variable para contar el numero de vueltas . Para ello defino un array de este tipo:
long tiempo_vuelta[10]; o long tiempo_vuelta[10]={0,0,.........};
int numero_vuelta;
Cada vez que se produce la interrupcion del sensor del cuenta_vueltas realizo la siguiente operacion:
ISR(INT5_vect) // interrupcion para cronometro. pin 3 digital
{
tiempo_vuelta[numero_vuelta]=millis()-start_crono;
start_crono=millis();
numero_vuelta++;
}
El problema viene a la hora de visualizar (por ejemplo en el monitor del puerto serie). me devuelve siempre a 0
hasta que se desborda el array y salen cosas raras (creo que es lo mas normal), no creo que sea problema de SRAM
ya que es una placa mega y el codigo no es muy grande de momento.
Para visualizar lo hago de esta manera: (una vez por segundo)
Serial.print(" vuelta: ");
Serial.print(numero_vuelta);
Serial.print(" tiempo: ");
Serial.print(tiempo_vuelta[numero_vuelta]);
Y esto es lo que me saca:
numero vuelta: 0 tiempo_vuelta : 0
numero vuelta: 1 tiempo_vuelta : 0
numero vuelta: 2 tiempo_vuelta : 0
numero vuelta: 3 tiempo_vuelta : 0
.... ........................
Si lo realizo sin el array funciona bien es decir
long tiempo_vuelta;
int numero_vuelta;
ISR(INT5_vect) // interrupcion para cronometro. pin 3 digital
{
tiempo_vuelta=millis()-start_crono;
start_crono=millis();
numero_vuelta++;
}
Serial.print(" vuelta: ");
Serial.print(numero_vuelta);
Serial.print(" tiempo: ");
Serial.print(tiempo_vuelta);
Espero haberme explicado bien ya que no soy programador (se hace lo que se puede).
Saludos y muchas gracias.