- Código: Selecionar todos
const long time = micros();
const unsigned int duration = time - lastTime;
Em principio a lógica não parece estar errada; pode estar acontecendo o seguinte: Ao entrar na função onde está declarado o trecho acima, a variável
time
é instanciada como
local, e pega o valor do temporizador do sistema, e logo a seguir calcula o tempo decorrido desde a última vez que entrou nessa função (duration) subtraindo de uma variavel - provavelmente -
global lastTime
. Repare que não faria sentido algum alterar no decorrer dessa função, seja o
time ou o
lastTime, pois são medidas lidas apenas uma vez por iteração.
Talvez o problema esteja no fato de que micros() retorna
unsigned long, e se
time está declarado acima como
long pode estar gerando um valor de tempo negativo; enfim, experimenta mudar isso pra ver se funciona, apenas um palpite.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."