всё работает

+экранчик
This commit is contained in:
2025-12-30 09:35:49 +03:00
parent 260a6416ad
commit 5d013ad4c4
75 changed files with 10048 additions and 2865 deletions

View File

@@ -60,7 +60,7 @@ float ADC_Calc(ADC_t *adc)
return 0;
ADC_Coefs_t *coefs = &adc->Coefs;
int16_t rawval = (int16_t)HAL_ADC_GetValue(adc->hadc);
int16_t rawval = HAL_ADC_GetValue(adc->hadc);
rawval = Filter_Process(&adc->mdn, rawval);
@@ -83,18 +83,22 @@ HAL_StatusTypeDef UKSI_Calc_Init(UKSI_Calc_t *calc, ADC_HandleTypeDef *hadc)
return HAL_ERROR;
calc->adc.hadc = hadc;
ADC_ConfigCoef(&calc->adc, 0, 1.411, 1860, 14);
// ADC_ConfigCoef(&calc->adc, 0, 1.259, 1639, 14);
ADC_ConfigCoef(&calc->adc, 0, 0.529, 703, 14);
ADC_ConfigFilter(&calc->adc, 10, 50000);
calc->RMeasOhm = 35060;
calc->RLimitOhm = 1.5e6;
calc->DCVoltage = 63;
calc->DCVoltage = 31.58;//60;
foster_init(&calc->adc.foster, 3000.0f);
foster_set_mse(&calc->adc.foster, 0.001f); /* Подберите под ваши значения напряжения */
HAL_ADCEx_Calibration_Start(hadc, ADC_SINGLE_ENDED);
calc->IsoOhm = 100e6;
calc->IsoMOhm = calc->IsoOhm / 1000000.0f;
return HAL_ADC_Start(hadc);
}
@@ -113,9 +117,13 @@ float UKSI_Calc_Isolation(UKSI_Calc_t *calc)
if(Filter_isDataReady(&calc->adc.avg))
{
/* Расчет тока */
float current = voltage / calc->RMeasOhm;
calc->IsoCurrentuA = current * 1000000.0f;
/* Проверка стабильности напряжения */
foster_add_sample(&calc->adc.foster, voltage);
if(foster_is_ready(&calc->adc.foster)) {
uint8_t stability = foster_check(&calc->adc.foster);
calc->adc.is_stable = stability;
@@ -126,14 +134,12 @@ float UKSI_Calc_Isolation(UKSI_Calc_t *calc)
}
}
/* Расчет изоляции */
float current = voltage / calc->RMeasOhm;
/* Расчет изоляции */
float Rtotal = calc->DCVoltage / current;
float Riso = Rtotal - (calc->RMeasOhm + calc->RLimitOhm);
calc->IsoOhm = Riso;
calc->IsoMOhm = Riso / 1000000.0f;
calc->IsoCurrentuA = current * 1000000.0f;
}
return calc->IsoOhm;