//////////////////////////////////////////////////////////////////////////
//
// Practica 2 - PruebaCrono
//
// Objetivo: ejercitar las funciones de la clase Crono (cronometro de alta
// precision): restart(), isActive(), elapse2millis(),
// stop2millis() y hasPassedMillis().
//
// Pestanas adicionales: crono.h, crono.cpp
//
///////////////////////////////////////////////////////////////////////////
#include "crono.h"
Crono crono;
double tiempo = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
// ---- 1) Medida con stop: para la cuenta al medir ----
crono.restart();
Serial.print("Tras restart, isActive = ");
Serial.println(crono.isActive()); // 1 (en ejecucion)
delay(2000);
tiempo = crono.stop2millis(); // mide y PARA el cronometro
Serial.print("stop2millis (~2000) = ");
Serial.println(tiempo);
Serial.print("Tras stop, isActive = ");
Serial.println(crono.isActive()); // 0 (parado)
// ---- 2) Medida con elapse: NO para la cuenta ----
crono.restart();
delay(500);
Serial.print("elapse2millis (~500) = ");
Serial.println(crono.elapse2millis());
delay(500);
Serial.print("elapse2millis (~1000) = ");
Serial.println(crono.elapse2millis()); // sigue contando
// ---- 3) Timeout con hasPassedMillis ----
crono.restart();
Serial.println("Esperando timeout de 1500 ms...");
while (!crono.hasPassedMillis((unsigned long)1500)); // espera activa
Serial.print("Timeout alcanzado, t = ");
Serial.println(crono.elapse2millis());
Serial.println("---------------------------------");
delay(1000);
}