micros()
micros()
Irmão mais rápido do millis(), o micros() conta o tempo desde que a placa ligou, mas em microssegundos (milionésimos de segundo). Use quando você precisa medir intervalos muito curtos, como a duração de um pulso.
Sintaxe
micros();
Parâmetros
Nenhum.
Retorno
O número de microssegundos desde que o programa começou, como unsigned long.
Exemplo
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long inicio = micros();
// trecho que você quer cronometrar
delayMicroseconds(200);
unsigned long duracao = micros() - inicio;
Serial.print("Levou ");
Serial.print(duracao);
Serial.println(" us");
delay(1000);
}
Notas e cuidados
- No Arduino Uno (16 MHz), a resolução é de 4 µs — os valores sempre vêm em múltiplos de 4. Em placas mais lentas (8 MHz) é de 8 µs.
- O contador volta a zero (overflow) depois de ~70 minutos, bem mais rápido que o
millis(). Use a subtração comunsigned longpra atravessar o overflow sem erro. - Pra intervalos longos (segundos, minutos), prefira
millis(), que estoura muito mais tarde.