Чет работает

This commit is contained in:
2025-12-16 17:57:59 +03:00
commit 260a6416ad
2906 changed files with 982301 additions and 0 deletions

62
Core/UKSI/uksi_calc_res.h Normal file
View File

@@ -0,0 +1,62 @@
#ifndef _UKSI_CALC_RES_H
#define _UKSI_CALC_RES_H
#include "main.h"
#include "foster_student.h" /* Добавить этот include */
#define FOSTER_ST
/**
* @brief Коэфициенты канала АЦП для пересчета в единицы измерения
*/
typedef struct
{
uint16_t lZero; ///< Нулевой уровень (в квантах АЦП)
float vMax; ///< Максимальный уровень Единиц Измерения (в Вольтах/Амперах)
uint16_t lMax; ///< Максимальный уровень АЦП (в квантах АЦП)
uint16_t lOffset; ///< Максимальный уровень АЦП (в квантах АЦП)
}ADC_Coefs_t;
typedef struct
{
ADC_HandleTypeDef *hadc;
uint16_t Raw;
float Voltage;
ADC_Coefs_t Coefs;
FilterMedianInt_t mdn;
FilterAverageInt_t avg;
FosterStudent foster; /* Для проверки стабильности */
uint8_t is_stable; /* 0-стабильно, 1-нестабильно, 0xFF-ошибка */
}ADC_t;
HAL_StatusTypeDef ADC_ConfigCoef(ADC_t *adc, uint16_t levelZero, float valueMax, uint16_t levelMax, uint16_t lOffset);
HAL_StatusTypeDef ADC_ConfigFilter(ADC_t *adc, uint8_t median_size, uint32_t average_size);
float ADC_Calc(ADC_t *adc);
typedef struct
{
ADC_t adc; // АЦП
float Voltage[100];
float RMeasOhm; // Сопротивление резистора с которого снимается напряжение
float RLimitOhm; // Сопротивление токоограничивающего резистора
float DCVoltage; // Нарпяжение подаваемое в изоляцию
float IsoOhm; // Измеренное сопротивление изоляции в МОм
float IsoMOhm; // Измеренное сопротивление изоляции Ом
float IsoCurrentuA; // Ток утечки изоляции в мкА
}UKSI_Calc_t;
HAL_StatusTypeDef UKSI_Calc_Init(UKSI_Calc_t *calc, ADC_HandleTypeDef *hadc);
float UKSI_Calc_Isolation(UKSI_Calc_t *calc);
#endif //_UKSI_CALC_RES_H