small bugfixes
This commit is contained in:
2024-02-23 11:25:48 +01:00
parent 53a44a4075
commit 213ee88c7a
23 changed files with 2122 additions and 263 deletions

View File

@ -63,6 +63,8 @@
#define OVERSAMPLING_DIVISOR 16.0f // calculated with parameters from hardware oversampling
// 6 bits(64x) - 2 bit shift = 4bit -> 16x
#define ALMOST_ZERO 0.05
//=================================================================================================
// Section: MACROS
// Description: Definition of local macros (visible by this module only).
@ -93,6 +95,8 @@ LOCAL osThreadId_t m_pstThreadID = NULL;
LOCAL osEventFlagsId_t m_pstEventID = NULL;
LOCAL osMutexId_t m_pstMutexID = NULL;
LOCAL FLOAT aflValues[ANPI_eInNumberOfInputs]; // values
//=================================================================================================
// Section: LOCAL CONSTANTS
// Description: Definition of local constants (visible by this module only).
@ -208,7 +212,6 @@ VOID vTask( PVOID arg )
U16 u16Offset;
FLOAT flUadc;
U32 au32ADCRawData[ANPI_eInNumberOfInputs];
FLOAT aflValues[ANPI_eInNumberOfInputs]; // values
osDelay( 1 ); // Wait 1ms to have a Valid Value
@ -238,9 +241,21 @@ VOID vTask( PVOID arg )
aflValues[u16Cnt] = flUadc * m_aflConversionFactor[u16Cnt] - m_aflOffset[u16Cnt];
}
// Filter
for( U16 u16Cnt = 0; u16Cnt < ANPI_eInNumberOfInputs; u16Cnt++ )
{
if ( -ALMOST_ZERO <= aflValues[u16Cnt] && aflValues[u16Cnt] < ALMOST_ZERO)
aflValues[u16Cnt] = 0.0f;
}
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_U, aflValues[ANPI_eOutputVoltage] );
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_I, aflValues[ANPI_eOutputCurrent] );
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_R, aflValues[ANPI_eOutputVoltage] / aflValues[ANPI_eOutputCurrent] );
if ( aflValues[ANPI_eOutputCurrent] == 0.0f ){
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_R, 0.0f );
} else {
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_R, aflValues[ANPI_eOutputVoltage] / aflValues[ANPI_eOutputCurrent] );
}
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_P, aflValues[ANPI_eOutputVoltage] * aflValues[ANPI_eOutputCurrent] );
VARH_vSetVariableDataFromSystemFloat( VARH_eSupply_U, aflValues[ANPI_eSupplyVoltage24V] );
@ -262,6 +277,21 @@ void HAL_ADC_ConvCpltCallback( ADC_HandleTypeDef* hadc )
osEventFlagsSet( m_pstEventID, ANPI_ADC_FULL_COMPLETE );
}
//-------------------------------------------------------------------------------------------------
// Function: HAL_ADC_ConvCpltCallback
// Description: Handles the ADC interrupts
// Parameters: None
// Returns: None
//-------------------------------------------------------------------------------------------------
FLOAT ANPI_GetVoltage( ANPI_EnAnalogInput enVoltage )
{
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
FLOAT flVoltage = aflValues[enVoltage];
osMutexRelease( m_pstMutexID ); // release mutex
return flVoltage;
}
//-------------------------------------------------------------------------------------------------
// Function: HAL_ADC_ConvHalfCpltCallback
// Description: Handles the ADC interrupts