#ifndef INC_IMD_MONITORING_H #define INC_IMD_MONITORING_H #include #include "stm32f3xx_hal.h" typedef enum { IMD_STATE_UNKNOWN, IMD_STATE_SHORTCIRCUIT_SUPPLY, IMD_STATE_SHORTCIRCUIT_GND, IMD_STATE_NORMAL, IMD_STATE_UNDERVOLTAGE, IMD_STATE_SST, IMD_STATE_DEV_ERROR, IMD_STATE_GND_FAULT, } IMDState; typedef struct { int ok; IMDState state; uint32_t r_iso; uint32_t freq; uint32_t duty_cycle; uint32_t last_high; } IMDData; extern IMDData imd_data; void imd_init(TIM_HandleTypeDef *htim); void imd_update(void); #endif // INC_IMD_MONITORING_H