Add firmware skeleton for RP2040
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.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user