🎨 Moving project to use event bus
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#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_) = 0; \
|
||||
unsigned long currentMillis = millis(); \
|
||||
if (UNIQUE_VAR(lastExecution_) == 0 || 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); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CALLS_PER_SECOND(name) \
|
||||
static unsigned long name##_count = 0; \
|
||||
static unsigned long last_time = 0; \
|
||||
name##_count++; \
|
||||
if (millis() - last_time >= 1000) { \
|
||||
Serial.printf("%s: %lu calls per second\n", #name, name##_count); \
|
||||
name##_count = 0; \
|
||||
last_time = millis(); \
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user