Какие-то тесты и построение алгоритма. Но ничего прям интересного
This commit is contained in:
@@ -156,7 +156,7 @@ HAL_StatusTypeDef ADC_Handle(ADC_Periodic_t *adc)
|
||||
{
|
||||
ADC_Coefs_t *coefs = &adc->Coefs[i];
|
||||
data[i] = ((float)(raw[i])-coefs->lZero) * coefs->vMax / (coefs->lMax-coefs->lZero);
|
||||
ADC_UpdateStatistics(adc, i, ADC_LEVEL_AC);
|
||||
// ADC_UpdateStatistics(adc, i, ADC_LEVEL_AC);
|
||||
}
|
||||
|
||||
// Фильтрация от шумов для всех каналов
|
||||
@@ -169,19 +169,15 @@ HAL_StatusTypeDef ADC_Handle(ADC_Periodic_t *adc)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Преобразования температуры по таблице
|
||||
for (int i = ADC_TEMP_CHANNELS_START; i < ADC_NUMB_OF_CHANNELS; i++)
|
||||
{
|
||||
data[i] = Filter_Process(&adc->temp_map[i-ADC_TEMP_CHANNELS_START], raw[i]);
|
||||
ADC_UpdateStatistics(adc, i, ADC_LEVEL_BASE);
|
||||
// ADC_UpdateStatistics(adc, i, ADC_LEVEL_BASE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
adc->f.DataReady = 1;
|
||||
|
||||
if(Filter_isDataReady(&adc->filter[0]))
|
||||
adc->f.DataReady = 1;
|
||||
return HAL_OK;
|
||||
}
|
||||
|
||||
@@ -221,7 +217,7 @@ void ADC_UpdateStatistics(ADC_Periodic_t *adc, uint8_t channel, ADC_StatLevel_t
|
||||
}
|
||||
|
||||
// Накопление для Avg/RMS
|
||||
stat->Sum += value;
|
||||
stat->Sum += ABS(value);
|
||||
stat->SumSquares += value * value;
|
||||
stat->SampleCount++;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user