logging testing. logging works. e-fusing algo works right for jack. jack timing works.

This commit is contained in:
Thaddeus Hughes
2026-01-17 13:33:57 -06:00
parent 982ada9787
commit a1a8313525
20 changed files with 2376 additions and 651 deletions

View File

@@ -12,19 +12,36 @@
#include <stdbool.h>
#include <stdint.h>
#include "esp_err.h"
#include "i2c.h"
typedef enum {
EFUSE_OK = 0,
EFUSE_OVERCURRENT = 1,
EFUSE_OVERHEAT = 2,
} efuse_trip_t;
//void efuse_reset_all(void); // Clear all trip states (manual/programmatic reset)
bool efuse_is_tripped(bridge_t bridge); // Query if bridge is currently faulted
void efuse_clear (bridge_t bridge);
efuse_trip_t efuse_get (bridge_t bridge); // Query if bridge is currently faulted
float efuse_get_heat(bridge_t bridge);
void efuse_set(bridge_t bridge, efuse_trip_t state);
float get_bridge_A(bridge_t bridge);
float get_bridge_raw_A(bridge_t bridge);
float get_battery_V();
float get_bridge_heat(bridge_t bridge);
void set_autozero(bridge_t bridge);
void disable_autozero(bridge_t bridge);
bool get_bridge_overcurrent(bridge_t bridge, float threshold);
bool get_bridge_spike(bridge_t bridge, float threshold);
esp_err_t process_bridge_current(bridge_t bridge);
esp_err_t process_battery_voltage();
esp_err_t adc_init();
esp_err_t power_init();
esp_err_t power_stop();
esp_err_t driveRelays(relay_port_t relay_state);
#endif /* MAIN_POWER_MGMT_H_ */