Куча всего.
Добавлена интерполяция по таблице датчиков Структурирован проект в матлаб
This commit is contained in:
Submodule UPP/AllLibs/MyLibs updated: 48daccef2d...606058ef55
@@ -55,14 +55,14 @@ static void ADC_InitAllFilters(ADC_Periodic_t *adc)
|
||||
{
|
||||
Filter_Init(&adc->filter[i], Filter_Initializator);
|
||||
}
|
||||
FilterLUTInt_Init(&adc->temp_map[0],
|
||||
(int32_t *)adc_temp_quants,
|
||||
(int32_t *)adc_temp_vals,
|
||||
sizeof(adc_temp_quants), 0);
|
||||
FilterLUTInt_Init(&adc->temp_map[1],
|
||||
(int32_t *)adc_temp_quants,
|
||||
(int32_t *)adc_temp_vals,
|
||||
sizeof(adc_temp_quants), 0);
|
||||
FilterLUT_Init(&adc->temp_map[0],
|
||||
(float *)adc_temp_quants,
|
||||
(float *)adc_temp_vals,
|
||||
numbof(adc_temp_quants), 1);
|
||||
FilterLUT_Init(&adc->temp_map[1],
|
||||
(float *)adc_temp_quants,
|
||||
(float *)adc_temp_vals,
|
||||
numbof(adc_temp_quants), 1);
|
||||
}
|
||||
/**
|
||||
* @brief Инициализация периодического АЦП.
|
||||
@@ -199,7 +199,7 @@ HAL_StatusTypeDef ADC_Handle(ADC_Periodic_t *adc)
|
||||
// Преобразования температуры по таблице
|
||||
for (int i = ADC_TEMP_CHANNELS_START; i < ADC_NUMB_OF_CHANNELS; i++)
|
||||
{
|
||||
data[i] = FilterLUTInt_Process(&adc->temp_map[i-ADC_TEMP_CHANNELS_START], raw[i]);
|
||||
data[i] = Filter_Process(&adc->temp_map[i-ADC_TEMP_CHANNELS_START], raw[i]);
|
||||
ADC_UpdateStatistics(adc, i, ADC_LEVEL_BASE);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, \
|
||||
82, 83, 84, 85, 86, 87, 88, 89, 90}
|
||||
|
||||
static const int32_t adc_temp_vals[] = ADC_TEMPERATURES;
|
||||
static const int32_t adc_temp_quants[] = ADC_TEMPERATURES_QUANTS;
|
||||
static const float adc_temp_vals[] = ADC_TEMPERATURES;
|
||||
static const float adc_temp_quants[] = ADC_TEMPERATURES_QUANTS;
|
||||
|
||||
#define Filter_t FilterMedian_t
|
||||
#define Filter_Init FilterMedian_Init
|
||||
@@ -102,7 +102,7 @@ typedef struct
|
||||
|
||||
Filter_t filter[ADC_NUMB_OF_CHANNELS]; ///< Фильтр от шумов АЦП
|
||||
|
||||
FilterLUTInt_t temp_map[2]; ///< Коррекция нелинейности датчиков температуры
|
||||
FilterLUT_t temp_map[2]; ///< Коррекция нелинейности датчиков температуры
|
||||
|
||||
float Data[ADC_NUMB_OF_CHANNELS]; ///< Пересчитанные значения АЦП (в Вольтах/Амперах)
|
||||
ADC_Statistics Stat[ADC_NUMB_OF_REGULAR_CHANNELS]; ///< Статистика для регулярных каналов (не температуры)
|
||||
|
||||
@@ -51,6 +51,7 @@ HAL_StatusTypeDef PowerMonitor_Start(PowerMonitor_t *hpm)
|
||||
|
||||
void PowerMonitor_Handle(PowerMonitor_t *hpm)
|
||||
{
|
||||
|
||||
static uint32_t last_zc_state[ADC_NUMB_OF_U_CHANNELS] = {0};
|
||||
ADC_Handle(&hpm->adc);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ typedef struct
|
||||
float U[3];
|
||||
float F[3];
|
||||
float I[3];
|
||||
float T[3];
|
||||
float T[2];
|
||||
}PowerMonitor_t;
|
||||
extern PowerMonitor_t pm;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user