Temos um código onde cada vez que um led acende uma pessoa deve interromper um sensor infravermelho. O mestre um M5 Stack Core 2 diz para outros ESPs quem deles deve acender seu respectivo LED. Para essa comunicação estamos usando o ESP NOW, já que precisamos de um sistema sem fio.
Para medir o tempo, antes da rotina de leds acender começar iniciamos a contagem de tempo com:
button_pressed = millis();
Após o fim da execução da Rotina chamamos a função end_time igual a:
elapsedtime = millis() - button_presssed.
Contudo, quando o resultado aparece na tela não está condizendo com o valor real do relógio que cronometramos com o celular, da erros de 2 a 30s de forma aleatória.
Também tentamos utilizar esp_get_time(); pensando que o problema fosse o overflow, mas não resolveu. Nas rotinas 3 e 4, onde o usuário tem até x segundos para interromper o led a taxa de erro piora.
Como podemos fazer para calcular o tempo de execução mais perto do tempo real?


