A library TimeInterval tem como objetivo facilitar a utilização dos comandos ”micros()” e “millis()”, tornando assim mais intuitivo o controle de tempo sem a paralização do programa principal.
- boolean intervalMillis(long millisTime): Retorna “verdadeiro” quando o tempo em milissegundos passado por parâmetro (millisTime) chegar ao final;
- resetMillis(): Reiniciar o contador de milissegundos associado ao método intervalMillis();
- boolean intervalMicros(long microsTime): Retorna “verdadeiro” quando o tempo em microssegundos passado por parâmetro (microsTime) chegar ao final;
- void resetMicros(): Reiniciar o contador de microssegundos associado ao método intervalMicros();
- void stopwatchStartMillis(): Inicializa um cronômetro em Milissegundos.
- long stopwatchStopMillis(): Parar cronômetro - Retornar o valor obtido em milissegundos.
- void stopwatchStartMicros(): Inicializa um cronômetro em Microssegundos.
- long stopwatchStopMicros(): Parar cronômetro - Retornar o valor obtido em microssegundos.
Exemplo 1: O exemplos abaixo utiliza a LIB "TimeInterval" para gerencia o tempo através do comando "intervalMillis()", não parando o código em execução
#include <ES32Lab.h>
TimeInterval intervalTest;
void setup() {
Serial.begin(115200);
}
void loop() {
/*
boolean TimeInterval::intervalMillis(long millisTime)
Returns "true" when the time in milliseconds has elapsed
- millisTime: Time in milliseconds
*/
if(intervalTest.intervalMillis(2000)){ // Execute command every 2000 milliseconds
Serial.println("It's not stopping the main loop.");
}
}Exemplo 2: Utilizar a LIB "TimeInterval" para criar um cronometro para identificar quanto tempo leva para executar alguns comandos "Serial.print()".
#include <ES32Lab.h>
TimeInterval intervalTest;
void setup() {
Serial.begin(115200);
}
void loop() {
/*
void TimeInterval::stopwatchStartMicros()
Initializes the stopwatch in microseconds
*/
intervalTest.stopwatchStartMicros();
Serial.println("*************");
Serial.println("Hello World");
Serial.println("*************");
/*
long TimeInterval::stopwatchStopMicros()
Stop stopwatch - Microseconds and return the obtained value
*/
long returnStopwatch = intervalTest.stopwatchStopMicros();
Serial.print("Execution of all previous println commands takes ");
Serial.print(returnStopwatch);
Serial.println(" microsconds.");
Serial.println("");
delay(5000);
}