Files
SpotMicroESP32-Leika/esp32/lib/ESP32-sveltekit/Timing.h
T
Rune Harlyk ae75d4011b ⏱️ Adds time it macro
2024-07-22 13:55:37 +02:00

32 lines
1.9 KiB
C

#ifndef TIMING_H
#define TIMING_H
#define CONCAT(a, b) a##b
#define UNIQUE_VAR(base) CONCAT(base, __LINE__)
#define EXECUTE_EVERY_N_MS(n, code) \
do { \
static volatile unsigned long UNIQUE_VAR(lastExecution_) = ULONG_MAX; \
unsigned long currentMillis = millis(); \
if (currentMillis - UNIQUE_VAR(lastExecution_) >= n) { \
code; \
UNIQUE_VAR(lastExecution_) = currentMillis; \
} \
} while (0)
#define TIME_IT(code) \
{ \
uint32_t time_it_start = micros(); \
code; \
uint32_t time_it_elapsed = micros() - time_it_start; \
if (time_it_elapsed < 1000) { \
ESP_LOGI("Time It", "Time elapsed: %lu microseconds", time_it_elapsed); \
} else if (time_it_elapsed < 1000000) { \
ESP_LOGI("Time It", "Time elapsed: %lu milliseconds", time_it_elapsed / 1000); \
} else { \
ESP_LOGI("Time It", "Time elapsed: %.2f seconds", time_it_elapsed / 1000000.0); \
} \
}
#endif