#include #include #include #include #include static const double SHUNT_RESISTOR = 20.0; static const double U_REF = 3.3; static const double I_THRESHOLD = 0.005; static const uint16_t N_MAX = 4095; static volatile uint16_t frontendAdcThreshold = 0; static volatile bool frontendEnabled = false; void frontendInit() { // double u_threshold = I_THRESHOLD * SHUNT_RESISTOR; // frontendAdcThreshold = (uint16_t) (u_threshold / U_REF * ((double) N_MAX)); // logMsg("frontendInit, threshold calculated: %d", frontendAdcThreshold); HAL_ADCEx_Calibration_Start(&frontendAdc); logMsg("frontendInit, calibration done"); HAL_ADC_Start_IT(&frontendAdc); logMsg("frontendInit, adc started"); } void frontendSetThreshold(uint16_t threshold) { frontendAdcThreshold = threshold; } void frontendEnable() { frontendEnabled = true; } void frontendDisable() { frontendEnabled = false; } void frontendAdcCallback(ADC_HandleTypeDef* hadc) { uint16_t rawValue = HAL_ADC_GetValue(hadc); HAL_GPIO_TogglePin(Debug_Signal_GPIO_Port, Debug_Signal_Pin); }