64f9e34fc3
Complete working firmware including: - CMakeLists.txt for Pico SDK build - SSD1306 OLED driver (128x32, I2C) - High-resolution latency measurement using hardware timer - Debounced button with short/long press detection - Three modes: Single, Continuous, Stats - USB serial debugging output Includes 8x8 font with numbers and letters for display.
39 lines
844 B
C
39 lines
844 B
C
#ifndef LATENCY_H
|
|
#define LATENCY_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
// Measurement result
|
|
typedef struct {
|
|
bool valid; // True if measurement succeeded
|
|
float latency_ms; // Measured latency in milliseconds
|
|
uint64_t latency_us; // Raw latency in microseconds
|
|
} measurement_t;
|
|
|
|
// Statistics
|
|
typedef struct {
|
|
float min_ms;
|
|
float max_ms;
|
|
float avg_ms;
|
|
uint32_t count;
|
|
} stats_t;
|
|
|
|
// Initialize latency measurement hardware
|
|
void latency_init(void);
|
|
|
|
// Perform a single latency measurement
|
|
// Returns result struct with valid flag and latency value
|
|
measurement_t latency_measure(void);
|
|
|
|
// Get current statistics
|
|
stats_t latency_get_stats(void);
|
|
|
|
// Reset statistics
|
|
void latency_reset_stats(void);
|
|
|
|
// Add measurement to statistics
|
|
void latency_add_to_stats(float latency_ms);
|
|
|
|
#endif // LATENCY_H
|