Files
SC-F001/main/sensors.h
2026-04-22 18:31:31 -05:00

44 lines
1.1 KiB
C

/*
* sensors.h
*
* Created on: Nov 10, 2025
* Author: Thad
*/
#ifndef MAIN_SENSORS_H_
#define MAIN_SENSORS_H_
#include "driver/gpio.h"
#include "esp_timer.h"
#include "freertos/FreeRTOS.h" // Must be FIRST
#define SENSOR_SAMPLE_PERIOD_US 100 // 10 kHz → captures 120 Hz easily
#define SENSOR_DEBOUNCE_US 500 // Reduced to 0.5 ms for responsiveness
typedef enum {
SENSOR_SAFETY = 0, // IO27
SENSOR_DRIVE = 1, // IO14
SENSOR_JACK = 2, // IO16
SENSOR_AUX2 = 3, // IO19
N_SENSORS = 4
} sensor_t;
void reset_sensor_counter(sensor_t i);
void set_sensor_counter(sensor_t i, int16_t to);
int16_t get_sensor_counter(sensor_t i);
/* Raw ISR-level edge count. Bumped on every GPIO transition by the
* sensor ISR regardless of whether sensors_check() is running; safe to
* read during bring-up while the FSM task is paused. */
uint32_t get_sensor_isr_edges(sensor_t i);
bool get_sensor(sensor_t i);
bool get_is_safe(void);
int8_t pack_sensors();
esp_err_t sensors_init();
void sensors_check();
//esp_err_t sensors_stop();
#endif /* MAIN_SENSORS_H_ */