Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
c68be57e1This file is pinned to the selected release. Download the original to open it in your design tool.
// Copyright (c) 2023 Oleg Kalachev <okalachev@gmail.com>
// Repository: https://github.com/okalachev/flix
// Time related functions
#include "Arduino.h"
#include "flix.h"
float t = NAN; // current time, s
float dt; // time delta with the previous step, s
float loopRate; // Hz
void step() {
float now = micros() / 1000000.0;
dt = now - t;
t = now;
if (!(dt > 0)) {
dt = 0; // assume dt to be zero on first step and on reset
}
computeLoopRate();
}
void computeLoopRate() {
static float windowStart = 0;
static uint32_t rate = 0;
rate++;
if (t - windowStart >= 1) { // 1 second window
loopRate = rate;
windowStart = t;
rate = 0;
}
}