New VARH einbinden + Code verschönern,syntax check
This commit is contained in:
@ -37,17 +37,9 @@
|
||||
// Application
|
||||
#include "VARH_VariableHandler.h"
|
||||
|
||||
//#include "RTOS_RealTimeOS.h"
|
||||
|
||||
//#include "ELOG_ErrorLogger.h"
|
||||
//#include "SYSS_SystemStateSignalization.h"
|
||||
#include "MAIN_MainApplication.h"
|
||||
|
||||
// Drivers
|
||||
//#include "../Drivers/IRQH_IntRequestHandler.h"
|
||||
//#include "../Drivers/MRAM_MRam.h"
|
||||
|
||||
|
||||
#include "../Drivers/USFL_UserFlash.h"
|
||||
#include "../Drivers/ANPI_AnalogPortsIn.h"
|
||||
#include "../Drivers/ANPO_AnalogPortsOut.h"
|
||||
@ -57,7 +49,6 @@
|
||||
#include "../Drivers/TEMP_Temperature.h"
|
||||
#include "../Drivers/PECO_PeltierController.h"
|
||||
#include "../Drivers/CAND_CanDriver.h"
|
||||
//#include "../Drivers/UART_UartDriver.h"
|
||||
|
||||
// Toolbox
|
||||
#include "../Toolbox/UTIL_Utility.h"
|
||||
@ -119,7 +110,7 @@ LOCAL CONST osThreadAttr_t stTaskAttribute =
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
PRIVATE VOID vInitTask ( PVOID arg )__NORETURN;
|
||||
PRIVATE VOID vTask ( PVOID arg )__NORETURN;
|
||||
|
||||
//=================================================================================================
|
||||
// Section: EXTERNAL FUNCTIONS
|
||||
@ -149,7 +140,7 @@ BOOL INIT_boCreateTask( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstThreadID = osThreadNew( vInitTask, NULL, &stTaskAttribute )) != NULL); // create init Task
|
||||
boOK &= ((m_pstThreadID = osThreadNew( vTask, NULL, &stTaskAttribute )) != NULL); // create init Task
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -161,49 +152,40 @@ BOOL INIT_boCreateTask( VOID )
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE VOID vInitTask( PVOID arg )
|
||||
PRIVATE VOID vTask( PVOID arg )
|
||||
{
|
||||
UNUSED( arg );
|
||||
|
||||
BOOL boOK = TRUE;
|
||||
BOOL boInitConfig = TRUE;
|
||||
|
||||
// boOK &= RTOS_boInitializeModule();
|
||||
boOK &= USFL_boInitializeModule();
|
||||
boOK &= VARH_boInitializeModule();
|
||||
|
||||
boOK &= DIPO_boInitializeModule();
|
||||
|
||||
boOK &= ANPI_boInitializeModule();
|
||||
boOK &= ANPO_boInitializeModule();
|
||||
boOK &= SPID_boInitializeModule();
|
||||
|
||||
// boOK &= MRAM_boInitializeModule( &boInitConfig );
|
||||
// boOK &= CALI_boInitializeModule( boInitConfig );
|
||||
|
||||
boOK &= ADCD_boInitializeModule();
|
||||
boOK &= TEMP_boInitializeModule();
|
||||
boOK &= PECO_boInitializeModule();
|
||||
boOK &= CAND_boInitializeModule();
|
||||
|
||||
|
||||
boOK &= MAIN_boInitializeModule();
|
||||
boOK &= MAIN_boInitializeModule();
|
||||
|
||||
if(!boOK){
|
||||
osKernelLock(); // lock kernel to prevent task switch
|
||||
while(1){
|
||||
DIPO_vToggleOutput(DIPO_eLED);
|
||||
DELAY_MS( 100 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// boInitConfig ? ELOG_ADD_LOG( ELOG_eFactoryReset ) : NULL;
|
||||
//
|
||||
// ELOG_ADD_LOG( ELOG_eSystemRebooted );
|
||||
//RTOS_vStartSystemLoadCounter();
|
||||
if( !boOK ){
|
||||
osKernelLock(); // lock kernel to prevent task switch
|
||||
while( 1 ){
|
||||
DIPO_vToggleOutput( DIPO_eLED );
|
||||
DELAY_MS( 100 );
|
||||
}
|
||||
}
|
||||
|
||||
osThreadSuspend( m_pstThreadID );
|
||||
while(1);
|
||||
while( 1 );
|
||||
}
|
||||
|
||||
//=================================================================================================
|
||||
|
@ -94,7 +94,7 @@
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
PRIVATE VOID vMainTask( PVOID arg );
|
||||
PRIVATE VOID vTask( PVOID arg );
|
||||
PRIVATE VOID vEventCallback( PVOID pvData );
|
||||
PRIVATE VOID vMsgRxCallback( CAND_Message stMessage );
|
||||
|
||||
@ -190,14 +190,14 @@ BOOL MAIN_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstEventID = osEventFlagsNew( &stEventAttribute )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ((m_pstThreadID = osThreadNew( vMainTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ((m_pstCANRxMsgQueueID = osMessageQueueNew( MSG_QUEUE_SIZE, sizeof(CAND_Message), &stCANRxMsgQueueAttribute ) ) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= (m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute )) == NULL ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstEventID = osEventFlagsNew( &stEventAttribute ) ) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstThreadID = osThreadNew( vTask, NULL, &stTaskAttribute ) ) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstCANRxMsgQueueID = osMessageQueueNew( MSG_QUEUE_SIZE, sizeof( CAND_Message ), &stCANRxMsgQueueAttribute ) ) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ( m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute ) ) == NULL ? FALSE : TRUE;
|
||||
|
||||
boOK &= (osTimerStart( m_pstUpdateTimer, 1000 ) == osOK ) ? TRUE : FALSE;
|
||||
|
||||
CAND_vSetRxCallback(vMsgRxCallback);
|
||||
CAND_vSetRxCallback( vMsgRxCallback );
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -213,7 +213,7 @@ BOOL MAIN_boInitializeModule( VOID )
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE VOID vMainTask( PVOID arg )
|
||||
PRIVATE VOID vTask( PVOID arg )
|
||||
{
|
||||
UNUSED( arg );
|
||||
U32 u32Flags;
|
||||
@ -232,57 +232,56 @@ PRIVATE VOID vMainTask( PVOID arg )
|
||||
CAND_Message stMessage;
|
||||
osMessageQueueGet( m_pstCANRxMsgQueueID, &stMessage, NULL, 0 );
|
||||
|
||||
if(stMessage.u8Id == 0x12){
|
||||
if( stMessage.u8Id == 0x12 ){
|
||||
|
||||
S16 s16Voltage = stMessage.au8Data[0] << 8;
|
||||
s16Voltage |= stMessage.au8Data[1];
|
||||
VARH_vSetVariableData(VARH_eControlVoltage, (VARH_UVariable)((FLOAT)s16Voltage/1000));
|
||||
VARH_vSetVariableDataFloat( VARH_eControlVoltage, (FLOAT)s16Voltage / 1000 );
|
||||
|
||||
} else if(stMessage.u8Id == 0x13){
|
||||
} else if( stMessage.u8Id == 0x13 ){
|
||||
|
||||
S16 SupplyVoltage24V = ((S16)(VARH_uGetVariableData(VARH_eSupply_U).flVal*1000));
|
||||
S16 SupplyCurrent24V = ((S16)(VARH_uGetVariableData(VARH_eSupply_I).flVal*1000));
|
||||
S16 OutputVoltage = ((S16)(VARH_uGetVariableData(VARH_ePeltier_U).flVal*1000));
|
||||
S16 OutputCurrent = ((S16)(VARH_uGetVariableData(VARH_ePeltier_I).flVal*1000));
|
||||
S16 SupplyVoltage24V = (S16) ( VARH_flGetVariableData( VARH_eSupply_U ) * 1000 );
|
||||
S16 SupplyCurrent24V = (S16) ( VARH_flGetVariableData( VARH_eSupply_I ) * 1000 );
|
||||
S16 OutputVoltage = (S16) ( VARH_flGetVariableData( VARH_ePeltier_U ) * 1000 );
|
||||
S16 OutputCurrent = (S16) ( VARH_flGetVariableData( VARH_ePeltier_I ) * 1000 );
|
||||
|
||||
au8Buffer[0] = (SupplyVoltage24V & 0xFF00) >> 8;
|
||||
au8Buffer[0] = ( SupplyVoltage24V & 0xFF00 ) >> 8;
|
||||
au8Buffer[1] = SupplyVoltage24V & 0xFF;
|
||||
au8Buffer[2] = (SupplyCurrent24V & 0xFF00) >> 8;
|
||||
au8Buffer[2] = ( SupplyCurrent24V & 0xFF00 ) >> 8;
|
||||
au8Buffer[3] = SupplyCurrent24V & 0xFF;
|
||||
au8Buffer[4] = (OutputVoltage & 0xFF00) >> 8;
|
||||
au8Buffer[4] = ( OutputVoltage & 0xFF00 ) >> 8;
|
||||
au8Buffer[5] = OutputVoltage & 0xff;
|
||||
au8Buffer[6] = (OutputCurrent & 0xFF00) >> 8;
|
||||
au8Buffer[6] = ( OutputCurrent & 0xFF00 ) >> 8;
|
||||
au8Buffer[7] = OutputCurrent & 0xFF;
|
||||
|
||||
CAND_boSendMessage(0x14, 8, au8Buffer);
|
||||
CAND_boSendMessage( 0x14, 8, au8Buffer );
|
||||
|
||||
} else if(stMessage.u8Id == 0x15){
|
||||
} else if( stMessage.u8Id == 0x15 ){
|
||||
|
||||
S16 Cold = (S16)(VARH_uGetVariableData(VARH_eTemp_C).flVal*100);
|
||||
S16 Hot = (S16)(VARH_uGetVariableData(VARH_eTemp_H).flVal*100);
|
||||
S16 Cold = (S16) ( VARH_flGetVariableData( VARH_eTemp_C ) * 100 );
|
||||
S16 Hot = (S16) ( VARH_flGetVariableData( VARH_eTemp_H ) * 100 );
|
||||
|
||||
au8Buffer[0] = (Cold & 0xFF00) >> 8;
|
||||
au8Buffer[1] = (Cold & 0xFF);
|
||||
au8Buffer[2] = (Hot & 0xFF00) >> 8;
|
||||
au8Buffer[3] = (Hot & 0xFF);
|
||||
au8Buffer[0] = ( Cold & 0xFF00 ) >> 8;
|
||||
au8Buffer[1] = ( Cold & 0x00FF );
|
||||
au8Buffer[2] = ( Hot & 0xFF00 ) >> 8;
|
||||
au8Buffer[3] = ( Hot & 0x00FF );
|
||||
|
||||
CAND_boSendMessage(0x16, 4, au8Buffer);
|
||||
CAND_boSendMessage( 0x16, 4, au8Buffer );
|
||||
|
||||
} else if(stMessage.u8Id == 0x17){
|
||||
} else if( stMessage.u8Id == 0x17 ){
|
||||
|
||||
PECO_Enable(TRUE);
|
||||
PECO_Enable( TRUE );
|
||||
|
||||
} else if(stMessage.u8Id == 0x18){
|
||||
} else if( stMessage.u8Id == 0x18 ){
|
||||
|
||||
PECO_Enable(FALSE);
|
||||
PECO_Enable( FALSE );
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if( u32Flags & EVENT_TIMER_UPDATE )
|
||||
{
|
||||
DIPO_vToggleOutput(DIPO_eLED);
|
||||
DIPO_vToggleOutput( DIPO_eLED );
|
||||
}
|
||||
|
||||
}
|
||||
@ -307,22 +306,8 @@ PRIVATE VOID vEventCallback( PVOID pvData )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE VOID vMsgRxCallback( CAND_Message stMessage )
|
||||
{
|
||||
osMessageQueuePut(m_pstCANRxMsgQueueID, &stMessage, 0, 0);
|
||||
osMessageQueuePut( m_pstCANRxMsgQueueID, &stMessage, 0, 0 );
|
||||
osEventFlagsSet( m_pstEventID, EVENT_NEW_MESSAGE );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: boSetValCheck
|
||||
// Description: Checks the range of the set value
|
||||
// Parameters: PVOID pvCallbackData
|
||||
// VARH_UVariable uNewValue
|
||||
// Returns: TRUE, the variable can be written
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/*PRIVATE BOOL boSetValCheck( PVOID pvCallbackData, VARH_UVariable uNewValue )
|
||||
{
|
||||
UNUSED( pvCallbackData );
|
||||
return( uNewValue.flVal <= 200.0f && uNewValue.flVal >= -200.0f ? FALSE : TRUE );
|
||||
}
|
||||
*/
|
||||
|
||||
|
@ -148,7 +148,7 @@ BOOL VARH_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstMutexID = osMutexNew( &m_stMutexAttr )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstMutexID = osMutexNew( &m_stMutexAttr ) ) == NULL ) ? FALSE : TRUE;
|
||||
|
||||
VARH_vSetAllVariablesToInitData();
|
||||
|
||||
@ -185,7 +185,7 @@ VOID vSetVariableData( U8 u8Variable, VARH_UVariable uData )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data )
|
||||
{
|
||||
vSetVariableData(u8Variable, (VARH_UVariable)u32Data);
|
||||
vSetVariableData( u8Variable, (VARH_UVariable)u32Data );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -197,7 +197,7 @@ VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data )
|
||||
{
|
||||
vSetVariableData(u8Variable, (VARH_UVariable)s32Data);
|
||||
vSetVariableData( u8Variable, (VARH_UVariable)s32Data );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -209,7 +209,7 @@ VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData )
|
||||
{
|
||||
vSetVariableData(u8Variable, (VARH_UVariable)flData);
|
||||
vSetVariableData( u8Variable, (VARH_UVariable)flData );
|
||||
}
|
||||
|
||||
|
||||
@ -243,7 +243,7 @@ VOID vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data )
|
||||
{
|
||||
vSetVariableDataFromSystem(u8Variable, (VARH_UVariable)u32Data);
|
||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)u32Data );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -256,7 +256,7 @@ VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data )
|
||||
{
|
||||
vSetVariableDataFromSystem(u8Variable, (VARH_UVariable)s32Data);
|
||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)s32Data );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -269,7 +269,7 @@ VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vSetVariableDataFromSystemFloat( U8 u8Variable, FLOAT flData )
|
||||
{
|
||||
vSetVariableDataFromSystem(u8Variable, (VARH_UVariable)flData);
|
||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)flData );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -294,7 +294,7 @@ VARH_UVariable uGetVariableData( U8 u8Variable )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
U32 VARH_u32GetVariableData( U8 u8Variable )
|
||||
{
|
||||
return uGetVariableData(u8Variable).u32Val;
|
||||
return uGetVariableData( u8Variable ).u32Val;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -305,7 +305,7 @@ U32 VARH_u32GetVariableData( U8 u8Variable )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
S32 VARH_s32GetVariableData( U8 u8Variable )
|
||||
{
|
||||
return uGetVariableData(u8Variable).s32Val;
|
||||
return uGetVariableData( u8Variable ).s32Val;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -316,7 +316,7 @@ S32 VARH_s32GetVariableData( U8 u8Variable )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
FLOAT VARH_flGetVariableData( U8 u8Variable )
|
||||
{
|
||||
return uGetVariableData(u8Variable).flVal;
|
||||
return uGetVariableData( u8Variable ).flVal;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -432,7 +432,7 @@ PRIVATE BOOL boCheckRange( U8 u8Variable, VARH_UVariable uNewData )
|
||||
return( boBooleanVarCheck( uNewData.s32Val ) );
|
||||
} else
|
||||
{
|
||||
return( boU32VarCheck(u8Variable, uNewData.u32Val ) );
|
||||
return( boU32VarCheck( u8Variable, uNewData.u32Val ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -53,42 +53,42 @@
|
||||
//=================================================================================================
|
||||
|
||||
// define commands
|
||||
#define CMD_READ (0<<7)
|
||||
#define CMD_WRITE (1<<7)
|
||||
#define CMD_READ (0<<7)
|
||||
#define CMD_WRITE (1<<7)
|
||||
|
||||
// define register
|
||||
#define REG_CONFIG 0x00
|
||||
#define REG_RTD_MSB 0x01
|
||||
#define REG_RTD_LSB 0x02
|
||||
#define REG_HIGH_FAULT_MSB 0x03
|
||||
#define REG_HIGH_FAULT_LSB 0x04
|
||||
#define REG_LOW_FAULT_MSB 0x05
|
||||
#define REG_LOW_FAULT_LSB 0x06
|
||||
#define REG_FAULT_STATUS 0x07
|
||||
#define REG_CONFIG 0x00
|
||||
#define REG_RTD_MSB 0x01
|
||||
#define REG_RTD_LSB 0x02
|
||||
#define REG_HIGH_FAULT_MSB 0x03
|
||||
#define REG_HIGH_FAULT_LSB 0x04
|
||||
#define REG_LOW_FAULT_MSB 0x05
|
||||
#define REG_LOW_FAULT_LSB 0x06
|
||||
#define REG_FAULT_STATUS 0x07
|
||||
|
||||
#define CONFIG_VBIAS_ON (1<<7)
|
||||
#define CONFIG_VBIAS_OFF (0<<7)
|
||||
#define CONFIG_MODE_AUTO (1<<6)
|
||||
#define CONFIG_MODE_OFF (0<<6)
|
||||
#define CONFIG_1SHOT (1<<5)
|
||||
#define CONFIG_3WIRE (1<<4)
|
||||
#define CONFIG_24WIRE (0<<4)
|
||||
#define CONFIG_FAULTCYCLE_NO (0<<2)
|
||||
#define CONFIG_FAULTCYCLE_AUTO (1<<2)
|
||||
#define CONFIG_FAULTCYCLE_MANUAL1 (2<<2)
|
||||
#define CONFIG_FAULTCYCLE_MANUAL2 (3<<2)
|
||||
#define CONFIG_FAULTSTATCLEAR (1<<1)
|
||||
#define CONFIG_FILT50HZ (1<<0)
|
||||
#define CONFIG_FILT60HZ (0<<0)
|
||||
#define CONFIG_VBIAS_ON (1<<7)
|
||||
#define CONFIG_VBIAS_OFF (0<<7)
|
||||
#define CONFIG_MODE_AUTO (1<<6)
|
||||
#define CONFIG_MODE_OFF (0<<6)
|
||||
#define CONFIG_1SHOT (1<<5)
|
||||
#define CONFIG_3WIRE (1<<4)
|
||||
#define CONFIG_24WIRE (0<<4)
|
||||
#define CONFIG_FAULTCYCLE_NO (0<<2)
|
||||
#define CONFIG_FAULTCYCLE_AUTO (1<<2)
|
||||
#define CONFIG_FAULTCYCLE_MANUAL1 (2<<2)
|
||||
#define CONFIG_FAULTCYCLE_MANUAL2 (3<<2)
|
||||
#define CONFIG_FAULTSTATCLEAR (1<<1)
|
||||
#define CONFIG_FILT50HZ (1<<0)
|
||||
#define CONFIG_FILT60HZ (0<<0)
|
||||
|
||||
#define FAULT_HIGHTHRESH 0x80
|
||||
#define FAULT_LOWTHRESH 0x40
|
||||
#define FAULT_REFINLOW 0x20
|
||||
#define FAULT_REFINHIGH 0x10
|
||||
#define FAULT_RTDINLOW 0x08
|
||||
#define FAULT_OVUV 0x04
|
||||
#define FAULT_HIGHTHRESH 0x80
|
||||
#define FAULT_LOWTHRESH 0x40
|
||||
#define FAULT_REFINLOW 0x20
|
||||
#define FAULT_REFINHIGH 0x10
|
||||
#define FAULT_RTDINLOW 0x08
|
||||
#define FAULT_OVUV 0x04
|
||||
|
||||
#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; 60Hz;
|
||||
#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; 60Hz;
|
||||
|
||||
#define EVENT_ENABLE ((U32)(1<<0))
|
||||
#define EVENT_DISABLE ((U32)(1<<1))
|
||||
@ -155,11 +155,11 @@ LOCAL osMutexId_t m_pstMutexID = NULL;
|
||||
|
||||
LOCAL SPID_StHandle m_stSPIHandle =
|
||||
{
|
||||
SPID_eADC, // enSPI;
|
||||
0xFF, // enCS (0xFF = hardware chip select)
|
||||
m_au8TxData, // pu8TxBuf;
|
||||
m_au8RxData, // pu8RxBuf;
|
||||
0, // u16TransferSize;
|
||||
SPID_eADC, // enSPI;
|
||||
0xFF, // enCS (0xFF = hardware chip select)
|
||||
m_au8TxData, // pu8TxBuf;
|
||||
m_au8RxData, // pu8RxBuf;
|
||||
0, // u16TransferSize;
|
||||
};
|
||||
|
||||
|
||||
@ -168,9 +168,6 @@ LOCAL SPID_StHandle m_stSPIHandle =
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
//PRIVATE VOID vAttachDataReadyISR ( VOID );
|
||||
//PRIVATE VOID vDeattachDataReadyISR ( VOID );
|
||||
|
||||
PRIVATE BOOL boWriteReg( U8 u8Register, U16 u16Data, BOOL boIs16bit );
|
||||
PRIVATE BOOL boReadReg( U8 u8Register, PU16 pu16Data, BOOL boIs16bit );
|
||||
|
||||
@ -204,29 +201,35 @@ BOOL ADCD_boInitializeModule( VOID )
|
||||
BOOL boOK = TRUE;
|
||||
U16 u16Data = 0;
|
||||
|
||||
boOK &= ((m_pstMutexID = osMutexNew( &m_stMutexAttr )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstMutexID = osMutexNew( &m_stMutexAttr ) ) == NULL ) ? FALSE : TRUE;
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
|
||||
DIPO_vSetOutput(DIPO_eCS_C);
|
||||
boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
|
||||
DIPO_vResetOutput(DIPO_eCS_C);
|
||||
DIPO_vSetOutput(DIPO_eCS_C);
|
||||
boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE);
|
||||
DIPO_vResetOutput(DIPO_eCS_C);
|
||||
DIPO_vSetOutput(DIPO_eCS_C);
|
||||
boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE);
|
||||
DIPO_vResetOutput(DIPO_eCS_C);
|
||||
|
||||
DIPO_vSetOutput(DIPO_eCS_H);
|
||||
boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
|
||||
DIPO_vResetOutput(DIPO_eCS_H);
|
||||
DIPO_vSetOutput(DIPO_eCS_H);
|
||||
boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE);
|
||||
DIPO_vResetOutput(DIPO_eCS_H);
|
||||
DIPO_vSetOutput(DIPO_eCS_H);
|
||||
boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE);
|
||||
DIPO_vResetOutput(DIPO_eCS_H);
|
||||
// Conifg ADC Cold
|
||||
DIPO_vSetOutput( DIPO_eCS_C );
|
||||
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
||||
DIPO_vResetOutput( DIPO_eCS_C );
|
||||
|
||||
DIPO_vSetOutput( DIPO_eCS_C );
|
||||
boOK &= boWriteReg( REG_HIGH_FAULT_MSB, (U16)0x5b12 , TRUE );
|
||||
DIPO_vResetOutput( DIPO_eCS_C );
|
||||
|
||||
DIPO_vSetOutput( DIPO_eCS_C );
|
||||
boOK &= boWriteReg( REG_LOW_FAULT_MSB, (U16)0x2690 , TRUE );
|
||||
DIPO_vResetOutput( DIPO_eCS_C );
|
||||
|
||||
// Config ADC Hot
|
||||
DIPO_vSetOutput( DIPO_eCS_H );
|
||||
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
||||
DIPO_vResetOutput( DIPO_eCS_H );
|
||||
|
||||
DIPO_vSetOutput( DIPO_eCS_H );
|
||||
boOK &= boWriteReg( REG_HIGH_FAULT_MSB, (U16)0x5b12 , TRUE );
|
||||
DIPO_vResetOutput( DIPO_eCS_H );
|
||||
|
||||
DIPO_vSetOutput( DIPO_eCS_H );
|
||||
boOK &= boWriteReg( REG_LOW_FAULT_MSB, (U16)0x2690 , TRUE );
|
||||
DIPO_vResetOutput( DIPO_eCS_H );
|
||||
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
@ -238,61 +241,56 @@ BOOL ADCD_boInitializeModule( VOID )
|
||||
// Description: Reads the conversion data form the ADC
|
||||
// Parameters: PU8 pu8Error error
|
||||
// Returns: DOUBLE conversion data
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
BOOL ADCD_boReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data)
|
||||
BOOL ADCD_boReadData( ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
*pu8Error = 0; // reset error state
|
||||
U16 u16Data = 0;
|
||||
BOOL boOK = TRUE;
|
||||
*pu8Error = 0; // reset error state
|
||||
U16 u16Data = 0;
|
||||
|
||||
DIPO_EnDigitalOutput CS = DIPO_eCS_H;
|
||||
|
||||
if(eChannel == ADCD_eHot)CS = DIPO_eCS_H;
|
||||
else if (eChannel == ADCD_eCold)CS = DIPO_eCS_C;
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
|
||||
DIPO_vSetOutput(CS);
|
||||
|
||||
boOK &= boWriteReg(REG_CONFIG, CONFIG | CONFIG_1SHOT , FALSE);
|
||||
|
||||
DIPO_vResetOutput(CS);
|
||||
|
||||
osMutexRelease( m_pstMutexID );
|
||||
if( eChannel == ADCD_eHot ) CS = DIPO_eCS_H;
|
||||
else if ( eChannel == ADCD_eCold ) CS = DIPO_eCS_C;
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boWriteReg( REG_CONFIG, CONFIG | CONFIG_1SHOT , FALSE );
|
||||
DIPO_vResetOutput( CS );
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
osDelay(55);
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
|
||||
DIPO_vSetOutput(CS);
|
||||
|
||||
boOK &= boReadReg(REG_RTD_MSB, &u16Data, TRUE);
|
||||
|
||||
DIPO_vResetOutput(CS);
|
||||
|
||||
osMutexRelease( m_pstMutexID );
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boReadReg( REG_RTD_MSB, &u16Data, TRUE );
|
||||
DIPO_vResetOutput( CS );
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
if( !boOK )
|
||||
{
|
||||
*pu8Error |= ADCD_SPI_FAILURE;
|
||||
*pu8Error |= ADCD_SPI_FAILURE;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if((u16Data & 0x01) == 0x01)
|
||||
if( ( u16Data & 0x01 ) == 0x01 )
|
||||
{
|
||||
*pu8Error |= ADCD_STATUS_DATA_ERROR;
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
DIPO_vSetOutput(CS);
|
||||
boOK &= boReadReg(REG_FAULT_STATUS, &u16Data, FALSE);
|
||||
DIPO_vResetOutput(CS);
|
||||
DIPO_vSetOutput(CS);
|
||||
boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
|
||||
DIPO_vResetOutput(CS);
|
||||
DIPO_vSetOutput(CS);
|
||||
boOK &= boReadReg(REG_HIGH_FAULT_MSB, &u16Data, TRUE);
|
||||
DIPO_vResetOutput(CS);
|
||||
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boReadReg( REG_FAULT_STATUS, &u16Data, FALSE );
|
||||
DIPO_vResetOutput( CS );
|
||||
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boWriteReg( REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE );
|
||||
DIPO_vResetOutput( CS );
|
||||
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boReadReg( REG_HIGH_FAULT_MSB, &u16Data, TRUE );
|
||||
DIPO_vResetOutput( CS );
|
||||
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
*pu8Error |= u16Data & 0xFC;
|
||||
@ -304,16 +302,12 @@ BOOL ADCD_boReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data)
|
||||
*pu16Data = u16Data;
|
||||
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
DIPO_vSetOutput( CS );
|
||||
boOK &= boWriteReg( REG_CONFIG, CONFIG | CONFIG_FAULTCYCLE_AUTO , FALSE );
|
||||
DIPO_vResetOutput( CS );
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
DIPO_vSetOutput(CS);
|
||||
|
||||
boOK &= boWriteReg(REG_CONFIG, CONFIG | CONFIG_FAULTCYCLE_AUTO , FALSE);
|
||||
|
||||
DIPO_vResetOutput(CS);
|
||||
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
||||
return( boOK );
|
||||
return( boOK );
|
||||
}
|
||||
|
||||
//=================================================================================================
|
||||
@ -332,11 +326,11 @@ BOOL ADCD_boReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data)
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE BOOL boWriteReg( U8 u8Register, U16 u16Data, BOOL boIs16bit )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
if(boIs16bit){
|
||||
if( boIs16bit ){
|
||||
m_au8TxData[0] = CMD_WRITE | u8Register;
|
||||
m_au8TxData[1] = (U8)(u16Data>>8);
|
||||
m_au8TxData[1] = (U8)u16Data>>8;
|
||||
m_au8TxData[2] = (U8)u16Data;
|
||||
m_stSPIHandle.u16TransferSize = 3;
|
||||
boOK &= SPID_boSendReceive( &m_stSPIHandle );
|
||||
@ -347,7 +341,7 @@ PRIVATE BOOL boWriteReg( U8 u8Register, U16 u16Data, BOOL boIs16bit )
|
||||
boOK &= SPID_boSendReceive( &m_stSPIHandle );
|
||||
}
|
||||
|
||||
return( boOK );
|
||||
return( boOK );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
@ -355,14 +349,14 @@ PRIVATE BOOL boWriteReg( U8 u8Register, U16 u16Data, BOOL boIs16bit )
|
||||
// Description: Reads the regiser
|
||||
// Parameters: U8 u8Register
|
||||
// PU16 pu16Data
|
||||
// BOOL boIs16bit TRUE, if Data is 16bit, FALSE, if Data is 8bit
|
||||
// BOOL boIs16bit TRUE, if Data is 16bit, FALSE, if Data is 8bit
|
||||
// Returns: BOOL TRUE, if successful, otherwise FALSE
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE BOOL boReadReg( U8 u8Register, PU16 pu16Data, BOOL boIs16bit )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
if(boIs16bit){
|
||||
if( boIs16bit ){
|
||||
m_au8TxData[0] = CMD_READ | u8Register;
|
||||
m_au8TxData[1] = 0;
|
||||
m_au8TxData[2] = 0;
|
||||
@ -370,7 +364,7 @@ PRIVATE BOOL boReadReg( U8 u8Register, PU16 pu16Data, BOOL boIs16bit )
|
||||
|
||||
boOK &= SPID_boSendReceive( &m_stSPIHandle );
|
||||
|
||||
*pu16Data = ((U16)m_au8RxData[1]<<8) | ((U16)m_au8RxData[2]<<0);
|
||||
*pu16Data = ( (U16)m_au8RxData[1]<<8 ) | ( (U16)m_au8RxData[2]<<0 );
|
||||
} else {
|
||||
m_au8TxData[0] = CMD_READ | u8Register;
|
||||
m_au8TxData[1] = 0;
|
||||
@ -383,44 +377,3 @@ PRIVATE BOOL boReadReg( U8 u8Register, PU16 pu16Data, BOOL boIs16bit )
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: vEventCallback
|
||||
// Description: Callback for events
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//PRIVATE VOID vEventCallback( PVOID pvData )
|
||||
//{
|
||||
// osEventFlagsSet( m_pstEventID, (U32)pvData );
|
||||
//}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: vAttachDataReadyISR
|
||||
// Description: Set Data Ready Pin Mode to ISR falling Edge
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//PRIVATE VOID vAttachDataReadyISR ( VOID )
|
||||
//{
|
||||
// GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
// /*Configure GPIO pin : ADC_RDY_Pin */
|
||||
// GPIO_InitStruct.Pin = m_u16DataReadyPin;
|
||||
// GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
||||
// GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
// HAL_GPIO_Init((GPIO_TypeDef*)m_pstDataReadyPort, &GPIO_InitStruct);
|
||||
//}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: vDeattachDataReadyISR
|
||||
// Description: Set Data Ready Pin Mode to Input
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//PRIVATE VOID vDeattachDataReadyISR ( VOID )
|
||||
//{
|
||||
//
|
||||
// HAL_GPIO_DeInit((GPIO_TypeDef*)m_pstDataReadyPort, m_u16DataReadyPin);
|
||||
|
||||
//}
|
||||
|
||||
|
@ -7,11 +7,11 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqué (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Module: ADC-Driver
|
||||
// Module: ADC Driver
|
||||
// Filename: ADCD_AdcDriver.h
|
||||
// Date: Handled by Subversion (version control system)
|
||||
// Revision: Handled by Subversion (version control system)
|
||||
@ -26,15 +26,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: INCLUDES
|
||||
// Description: List of required include files (visible by all modules).
|
||||
//=================================================================================================
|
||||
|
||||
#include "../SDEF_StandardDefinitions.h"
|
||||
//#include "../Application/CALI_Calibration.h"
|
||||
|
||||
//=================================================================================================
|
||||
// Section: DEFINITIONS
|
||||
@ -89,7 +86,7 @@ typedef enum {
|
||||
|
||||
BOOL ADCD_boInitializeModule( VOID );
|
||||
//BOOL ADCD_boConfig( BOOL boFast, ADCD_pfnCallback pfnDataReadyCallback, PVOID pvCallbackArg );
|
||||
BOOL ADCD_boReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data);
|
||||
BOOL ADCD_boReadData( ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -133,6 +133,7 @@ LOCAL CONST StADCInit m_astADCInit[1] =
|
||||
{
|
||||
{ADC1}, // 00 eADC1
|
||||
};
|
||||
|
||||
// inputs are connected to the following ADCs
|
||||
// ANPI_eSupplyVoltage24V ADC1, Channel 6
|
||||
// ANPI_eSupplyCurrent24V ADC1, Channel 16
|
||||
@ -173,7 +174,7 @@ LOCAL CONST osMutexAttr_t m_stMutexAttr =
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
PRIVATE VOID ANPI_vTask( PVOID arg );
|
||||
PRIVATE VOID vTask( PVOID arg );
|
||||
|
||||
//=================================================================================================
|
||||
// Section: EXTERNAL FUNCTIONS
|
||||
@ -204,10 +205,10 @@ BOOL ANPI_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstThreadID = osThreadNew( ANPI_vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ((m_pstEventID = osEventFlagsNew( &stEventAttribute )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstThreadID = osThreadNew( vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstEventID = osEventFlagsNew( &stEventAttribute )) == NULL) ? FALSE : TRUE;
|
||||
|
||||
boOK &= ((m_pstMutexID = osMutexNew( &m_stMutexAttr )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstMutexID = osMutexNew( &m_stMutexAttr )) == NULL) ? FALSE : TRUE;
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -218,7 +219,7 @@ BOOL ANPI_boInitializeModule( VOID )
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID ANPI_vTask( PVOID arg )
|
||||
VOID vTask( PVOID arg )
|
||||
{
|
||||
U32 u32Flags;
|
||||
U16 u16Offset;
|
||||
@ -228,7 +229,7 @@ VOID ANPI_vTask( PVOID arg )
|
||||
|
||||
osDelay( 1 ); // Wait 1ms to have a Valid Value
|
||||
|
||||
HAL_ADC_Start_DMA( &hadc1, (PU32)&m_au16ADCDataBuffer[0], BUFFER_SIZE);
|
||||
HAL_ADC_Start_DMA( &hadc1, (PU32)&m_au16ADCDataBuffer[0], BUFFER_SIZE );
|
||||
|
||||
while ( TRUE )
|
||||
{
|
||||
@ -242,24 +243,24 @@ VOID ANPI_vTask( PVOID arg )
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
||||
|
||||
// copy the values in the buffer...
|
||||
for(U16 u16Cnt = 0; u16Cnt < BUFFER_HALF_SIZE; u16Cnt++ )
|
||||
for( U16 u16Cnt = 0; u16Cnt < BUFFER_HALF_SIZE; u16Cnt++ )
|
||||
au32ADCRawData[ u16Cnt ] = m_au16ADCDataBuffer[u16Cnt + u16Offset];
|
||||
|
||||
// multiply conversion factor and add the offset
|
||||
for(U16 u16Cnt = 0; u16Cnt < ANPI_eInNumberOfInputs; u16Cnt++ )
|
||||
for( U16 u16Cnt = 0; u16Cnt < ANPI_eInNumberOfInputs; u16Cnt++ )
|
||||
{
|
||||
flUadc = (FLOAT)au32ADCRawData[u16Cnt] / OVERSAMPLING_DIVISOR / ADC_RES * INT_ADC_REF;
|
||||
aflValues[u16Cnt] = flUadc * m_aflConversionFactor[u16Cnt] - m_aflOffset[u16Cnt];
|
||||
}
|
||||
|
||||
VARH_vSetVariableDataFromSystem(VARH_ePeltier_U, (VARH_UVariable)aflValues[ANPI_eOutputVoltage]);
|
||||
VARH_vSetVariableDataFromSystem(VARH_ePeltier_I, (VARH_UVariable)aflValues[ANPI_eOutputCurrent]);
|
||||
VARH_vSetVariableDataFromSystem(VARH_ePeltier_R, (VARH_UVariable)(aflValues[ANPI_eOutputVoltage] / aflValues[ANPI_eOutputCurrent]));
|
||||
VARH_vSetVariableDataFromSystem(VARH_ePeltier_R, (VARH_UVariable)(aflValues[ANPI_eOutputVoltage] * aflValues[ANPI_eOutputCurrent]));
|
||||
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] );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_ePeltier_R, aflValues[ANPI_eOutputVoltage] * aflValues[ANPI_eOutputCurrent] );
|
||||
|
||||
VARH_vSetVariableDataFromSystem(VARH_eSupply_U, (VARH_UVariable)aflValues[ANPI_eSupplyVoltage24V]);
|
||||
VARH_vSetVariableDataFromSystem(VARH_eSupply_I, (VARH_UVariable)aflValues[ANPI_eSupplyCurrent24V]);
|
||||
VARH_vSetVariableDataFromSystem(VARH_eSupply_P, (VARH_UVariable)(aflValues[ANPI_eSupplyVoltage24V] * aflValues[ANPI_eSupplyCurrent24V]));
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eSupply_U, aflValues[ANPI_eSupplyVoltage24V] );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eSupply_I, aflValues[ANPI_eSupplyCurrent24V] );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eSupply_P, aflValues[ANPI_eSupplyVoltage24V] * aflValues[ANPI_eSupplyCurrent24V] );
|
||||
|
||||
osMutexRelease( m_pstMutexID ); // release mutex
|
||||
}
|
||||
@ -271,7 +272,7 @@ VOID ANPI_vTask( PVOID arg )
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
|
||||
void HAL_ADC_ConvCpltCallback( ADC_HandleTypeDef* hadc )
|
||||
{
|
||||
osEventFlagsSet( m_pstEventID, ANPI_ADC_FULL_COMPLETE );
|
||||
}
|
||||
@ -282,7 +283,7 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc)
|
||||
void HAL_ADC_ConvHalfCpltCallback( ADC_HandleTypeDef* hadc )
|
||||
{
|
||||
osEventFlagsSet( m_pstEventID, ANPI_ADC_HALF_COMPLETE );
|
||||
}
|
||||
@ -300,6 +301,7 @@ void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc)
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
void HAL_ADC_ErrorCallback( ADC_HandleTypeDef* hadc )
|
||||
{
|
||||
// TODO: Error Handling
|
||||
if( hadc->ErrorCode == HAL_ADC_ERROR_NONE )
|
||||
{
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqué (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
@ -63,7 +63,7 @@ typedef enum
|
||||
ANPI_eOutputVoltage = 2, // output voltage peltier element
|
||||
ANPI_eOutputCurrent = 3, // output current peltier element
|
||||
|
||||
ANPI_eInNumberOfInputs, // Must be last entry
|
||||
ANPI_eInNumberOfInputs, // Must be last entry
|
||||
} ANPI_EnAnalogInput;
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqué (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
@ -120,7 +120,7 @@ BOOL ANPO_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= HAL_DAC_Start(&hdac1, DAC_CHANNEL_1) == HAL_OK ? TRUE : FALSE;
|
||||
boOK &= HAL_DAC_Start( &hdac1, DAC_CHANNEL_1 ) == HAL_OK ? TRUE : FALSE;
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -141,7 +141,7 @@ BOOL ANPO_boSetVoltage( FLOAT Voltage ){
|
||||
|
||||
U32 RawData = u32ConvertVoltagetoRaw( Voltage );
|
||||
|
||||
boOK &= HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, RawData);
|
||||
boOK &= HAL_DAC_SetValue( &hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, RawDatab );
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqué (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
@ -26,8 +26,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: INCLUDES
|
||||
// Description: List of required include files (visible by all modules).
|
||||
@ -35,7 +33,6 @@ extern "C" {
|
||||
|
||||
#include "../SDEF_StandardDefinitions.h"
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: DEFINITIONS
|
||||
// Description: Definition of global constants (visible by all modules).
|
||||
@ -59,7 +56,7 @@ typedef enum
|
||||
{
|
||||
ANPO_eControlVoltage = 0, // 00 control Voltage
|
||||
|
||||
ANPO_eInNumberOfInputs, // Must be last entry
|
||||
ANPO_eInNumberOfInputs, // Must be last entry
|
||||
} ANPO_EnAnalogOutput;
|
||||
|
||||
|
||||
|
@ -11,8 +11,8 @@
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Module: Analog Ports Output
|
||||
// Filename: ANPO_AnalogPortsOut.c
|
||||
// Module: Can Driver
|
||||
// Filename: CAND_CanDriver.c
|
||||
// Date: Handled by Subversion (version control system)
|
||||
// Revision: Handled by Subversion (version control system)
|
||||
// History: Handled by Subversion (version control system)
|
||||
@ -33,9 +33,6 @@
|
||||
#include "../PDEF_ProjectDefinitions.h"
|
||||
#include "CAND_CanDriver.h"
|
||||
|
||||
//Application
|
||||
//#include "../Application/ELOG_ErrorLogger.h"
|
||||
|
||||
// Toolbox
|
||||
#include "../Toolbox/UTIL_Utility.h"
|
||||
|
||||
@ -121,9 +118,9 @@ BOOL CAND_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= (HAL_CAN_Start(&hcan1) == HAL_OK) ? TRUE : FALSE;
|
||||
boOK &= ( HAL_CAN_Start(&hcan1) == HAL_OK ) ? TRUE : FALSE;
|
||||
|
||||
boOK &= (HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING) == HAL_OK) ? TRUE : FALSE;
|
||||
boOK &= ( HAL_CAN_ActivateNotification( &hcan1, CAN_IT_RX_FIFO0_MSG_PENDING ) == HAL_OK ) ? TRUE : FALSE;
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -151,7 +148,7 @@ BOOL CAND_boSendMessage( U8 u8Id, U8 u8Len, PU8 pu8Buffer ){
|
||||
DISABLE
|
||||
};
|
||||
|
||||
boOK &= HAL_CAN_AddTxMessage(&hcan1, &header, pu8Buffer, (PU32)CAN_TX_MAILBOX0 ) == HAL_OK ? TRUE : FALSE;
|
||||
boOK &= HAL_CAN_AddTxMessage( &hcan1, &header, pu8Buffer, (PU32)CAN_TX_MAILBOX0 ) == HAL_OK ? TRUE : FALSE;
|
||||
|
||||
return boOK;
|
||||
}
|
||||
@ -182,20 +179,20 @@ VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback ){
|
||||
// Parameters: CAN_HandleTypeDef *hcan
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan){
|
||||
void HAL_CAN_RxFifo0MsgPendingCallback( CAN_HandleTypeDef *hcan ){
|
||||
|
||||
CAN_RxHeaderTypeDef header;
|
||||
U8 au8Data[8];
|
||||
|
||||
HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &header, au8Data);
|
||||
HAL_CAN_GetRxMessage( hcan, CAN_RX_FIFO0, &header, au8Data );
|
||||
|
||||
CAND_Message stMessage;
|
||||
|
||||
stMessage.u8Id = header.StdId;
|
||||
stMessage.u8Len = header.DLC;
|
||||
UTIL_vMemCopy(au8Data,stMessage.au8Data,stMessage.u8Len);
|
||||
UTIL_vMemCopy( au8Data,stMessage.au8Data,stMessage.u8Len );
|
||||
|
||||
m_pfnRxCallback(stMessage);
|
||||
m_pfnRxCallback( stMessage );
|
||||
|
||||
}
|
||||
|
||||
@ -205,9 +202,9 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan){
|
||||
// Parameters: CAN_HandleTypeDef *hcan
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan){
|
||||
void HAL_CAN_ErrorCallback( CAN_HandleTypeDef *hcan ){
|
||||
U32 u32Error = hcan->ErrorCode;
|
||||
|
||||
// TODO: Can Error Handling
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,12 +7,12 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqué (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Module: Analog Ports Output
|
||||
// Filename: ANPO_AnalogPortsOut.h
|
||||
// Module: Can Driver
|
||||
// Filename: CAND_CanDriver.h
|
||||
// Date: Handled by Subversion (version control system)
|
||||
// Revision: Handled by Subversion (version control system)
|
||||
// History: Handled by Subversion (version control system)
|
||||
@ -35,7 +35,6 @@ extern "C" {
|
||||
|
||||
#include "../SDEF_StandardDefinitions.h"
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: DEFINITIONS
|
||||
// Description: Definition of global constants (visible by all modules).
|
||||
|
@ -98,10 +98,10 @@ typedef struct
|
||||
LOCAL CONST StDigitalIO m_astInputs[DIPO_eInNumberOfInputs] =
|
||||
{
|
||||
|
||||
{GPIOB, {GPIO_PIN_7, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE}, // 00 DIPO_ePG
|
||||
{GPIOB, {GPIO_PIN_4, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE}, // 01 DIPO_eADR2
|
||||
{GPIOB, {GPIO_PIN_3, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE}, // 02 DIPO_eADR1
|
||||
{GPIOA, {GPIO_PIN_15, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE}, // 03 DIPO_eADR0
|
||||
{ GPIOB, { GPIO_PIN_7, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 00 DIPO_ePG
|
||||
{ GPIOB, { GPIO_PIN_4, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 01 DIPO_eADR2
|
||||
{ GPIOB, { GPIO_PIN_3, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 02 DIPO_eADR1
|
||||
{ GPIOA, { GPIO_PIN_15, GPIO_MODE_INPUT, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 03 DIPO_eADR0
|
||||
|
||||
};
|
||||
|
||||
@ -109,10 +109,10 @@ LOCAL CONST StDigitalIO m_astInputs[DIPO_eInNumberOfInputs] =
|
||||
LOCAL CONST StDigitalIO m_astOutputs[DIPO_eOutNumberOfOutputs] =
|
||||
{
|
||||
|
||||
{GPIOB, {GPIO_PIN_6, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, TRUE, FALSE }, // 00 DIPO_eCS_C
|
||||
{GPIOB, {GPIO_PIN_5, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, TRUE, FALSE }, // 01 DIPO_eCS_H
|
||||
{GPIOA, {GPIO_PIN_10, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE }, // 02 DIPO_eLED
|
||||
{GPIOA, {GPIO_PIN_8, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM,0}, FALSE, TRUE }, // 03 DIPO_eEN
|
||||
{ GPIOB, { GPIO_PIN_6, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, TRUE, FALSE }, // 00 DIPO_eCS_C
|
||||
{ GPIOB, { GPIO_PIN_5, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, TRUE, FALSE }, // 01 DIPO_eCS_H
|
||||
{ GPIOA, { GPIO_PIN_10, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 02 DIPO_eLED
|
||||
{ GPIOA, { GPIO_PIN_8, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_MEDIUM, 0 }, FALSE, TRUE }, // 03 DIPO_eEN
|
||||
|
||||
};
|
||||
|
||||
@ -161,12 +161,12 @@ BOOL DIPO_boInitializeModule( VOID )
|
||||
// ----------------------
|
||||
if( DIPO_eInNumberOfInputs > 0 )
|
||||
{
|
||||
for( u8Cnt = 0 ; u8Cnt < DIPO_eInNumberOfInputs; u8Cnt++)
|
||||
for( u8Cnt = 0 ; u8Cnt < DIPO_eInNumberOfInputs; u8Cnt++ )
|
||||
{
|
||||
boOK &= (m_astInputs[u8Cnt].stGPIOInit.Mode == GPIO_MODE_INPUT) ? TRUE : FALSE;
|
||||
|
||||
// configure the GIO pin
|
||||
HAL_GPIO_Init( m_astInputs[u8Cnt].pstPort, (GPIO_InitTypeDef*)&m_astInputs[u8Cnt].stGPIOInit);
|
||||
HAL_GPIO_Init( m_astInputs[u8Cnt].pstPort, (GPIO_InitTypeDef*)&m_astInputs[u8Cnt].stGPIOInit );
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,14 +174,14 @@ BOOL DIPO_boInitializeModule( VOID )
|
||||
// ----------------------
|
||||
if( DIPO_eOutNumberOfOutputs > 0 )
|
||||
{
|
||||
for( u8Cnt = 0 ; u8Cnt < DIPO_eOutNumberOfOutputs; u8Cnt++)
|
||||
for( u8Cnt = 0 ; u8Cnt < DIPO_eOutNumberOfOutputs; u8Cnt++ )
|
||||
{
|
||||
boOK &= (m_astOutputs[u8Cnt].stGPIOInit.Mode == GPIO_MODE_OUTPUT_PP || m_astOutputs[u8Cnt].stGPIOInit.Mode == GPIO_MODE_OUTPUT_OD) ? TRUE : FALSE;
|
||||
|
||||
// disable output
|
||||
DIPO_vResetOutput( (DIPO_EnDigitalOutput)u8Cnt );
|
||||
|
||||
HAL_GPIO_Init( m_astOutputs[u8Cnt].pstPort, (GPIO_InitTypeDef*)&m_astOutputs[u8Cnt].stGPIOInit);
|
||||
HAL_GPIO_Init( m_astOutputs[u8Cnt].pstPort, (GPIO_InitTypeDef*)&m_astOutputs[u8Cnt].stGPIOInit );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Project: Peltier Controller V2
|
||||
// Author: Noah Piqu<71> (noah.pique@psi.ch)
|
||||
// Author: Noah Piqu<71> (noah.pique@psi.ch)
|
||||
//
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
//
|
||||
@ -61,12 +61,12 @@ extern "C" {
|
||||
typedef enum
|
||||
{
|
||||
|
||||
DIPO_ePG = 0, // 00 DIP 1
|
||||
DIPO_eADR2 = 1, // 01 DIP 2
|
||||
DIPO_eADR1 = 2, // 02 DIP 3
|
||||
DIPO_eADR0 = 3, // 03 DIP 4
|
||||
DIPO_ePG = 0, // 00 DIP 1
|
||||
DIPO_eADR2 = 1, // 01 DIP 2
|
||||
DIPO_eADR1 = 2, // 02 DIP 3
|
||||
DIPO_eADR0 = 3, // 03 DIP 4
|
||||
|
||||
DIPO_eInNumberOfInputs, // Must be last entry
|
||||
DIPO_eInNumberOfInputs, // Must be last entry
|
||||
} DIPO_EnDigitalInput;
|
||||
|
||||
|
||||
@ -80,11 +80,11 @@ typedef enum
|
||||
DIPO_eCS_C = 0, // 00 Chip Select Cold
|
||||
DIPO_eCS_H = 1, // 01 Chip Select Hot
|
||||
|
||||
DIPO_eLED = 2, // 02 Test LED
|
||||
DIPO_eEN = 3, // 03 Enable
|
||||
DIPO_eLED = 2, // 02 Test LED
|
||||
DIPO_eEN = 3, // 03 Enable
|
||||
|
||||
|
||||
DIPO_eOutNumberOfOutputs, // Must be last entry
|
||||
DIPO_eOutNumberOfOutputs, // Must be last entry
|
||||
} DIPO_EnDigitalOutput;
|
||||
|
||||
|
||||
|
@ -133,7 +133,7 @@ LOCAL CONST osEventFlagsAttr_t stEventAttribute =
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
PRIVATE VOID PECO_vTask( PVOID arg );
|
||||
PRIVATE VOID vTask( PVOID arg );
|
||||
BOOL boSetPeltierVoltage( FLOAT Voltage );
|
||||
PRIVATE VOID vEventCallback( PVOID pvData );
|
||||
|
||||
@ -165,9 +165,9 @@ BOOL PECO_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstThreadID = osThreadNew( PECO_vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ((m_pstEventID = osEventFlagsNew( &stEventAttribute )) == NULL) ? FALSE : TRUE;
|
||||
boOK &= (m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute )) == NULL ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstThreadID = osThreadNew( vTask, NULL, &stTaskAttribute ) ) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ( ( m_pstEventID = osEventFlagsNew( &stEventAttribute ) ) == NULL) ? FALSE : TRUE;
|
||||
boOK &= ( m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute ) ) == NULL ? FALSE : TRUE;
|
||||
|
||||
boSetPeltierVoltage(0);
|
||||
|
||||
@ -218,12 +218,12 @@ BOOL PECO_isEnabled( VOID ){
|
||||
//=================================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: PECO_vTask
|
||||
// Description: PECO_vTask
|
||||
// Function: vTask
|
||||
// Description: Task
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID PECO_vTask( PVOID arg )
|
||||
VOID vTask( PVOID arg )
|
||||
{
|
||||
|
||||
UNUSED( arg );
|
||||
@ -241,21 +241,21 @@ VOID PECO_vTask( PVOID arg )
|
||||
if( u32Flags & EVENT_TIMER_UPDATE )
|
||||
{
|
||||
|
||||
if (VARH_uGetVariableData(VARH_eMode).u32Val == PECO_eConstTemp)
|
||||
if ( VARH_u32GetVariableData( VARH_eMode ) == PECO_eConstTemp )
|
||||
{
|
||||
// TODO: check the measurements, everything ok?
|
||||
|
||||
|
||||
// PID Regelung
|
||||
|
||||
FLOAT kp = VARH_uGetVariableData(VARH_ePID_kp).flVal;
|
||||
FLOAT ki = VARH_uGetVariableData(VARH_ePID_ki).flVal;
|
||||
FLOAT kd = VARH_uGetVariableData(VARH_ePID_kd).flVal;
|
||||
FLOAT max = VARH_uGetVariableData(VARH_ePID_Max).flVal;
|
||||
FLOAT min = VARH_uGetVariableData(VARH_ePID_Min).flVal;
|
||||
FLOAT kp = VARH_flGetVariableData( VARH_ePID_kp );
|
||||
FLOAT ki = VARH_flGetVariableData( VARH_ePID_ki );
|
||||
FLOAT kd = VARH_flGetVariableData( VARH_ePID_kd );
|
||||
FLOAT max = VARH_flGetVariableData( VARH_ePID_Max );
|
||||
FLOAT min = VARH_flGetVariableData( VARH_ePID_Min );
|
||||
|
||||
FLOAT Tnow = VARH_uGetVariableData(VARH_eTemp_C).flVal;
|
||||
FLOAT Tset = VARH_uGetVariableData(VARH_ePID_Temp).flVal;
|
||||
FLOAT Tnow = VARH_flGetVariableData( VARH_eTemp_C );
|
||||
FLOAT Tset = VARH_flGetVariableData( VARH_ePID_Temp );
|
||||
|
||||
// -error
|
||||
FLOAT error = Tnow - Tset;
|
||||
@ -268,24 +268,24 @@ VOID PECO_vTask( PVOID arg )
|
||||
FLOAT I = ki * integral;
|
||||
|
||||
// derivative term
|
||||
FLOAT D = kd * (error - last_error) / dT;
|
||||
FLOAT D = kd * ( error - last_error ) / dT;
|
||||
last_error = error;
|
||||
|
||||
// total
|
||||
FLOAT output = P + I + D;
|
||||
|
||||
// limitter
|
||||
if (output > max){
|
||||
if ( output > max ){
|
||||
output = max;
|
||||
} else if (output < min){
|
||||
} else if ( output < min ){
|
||||
output = min;
|
||||
}
|
||||
|
||||
boSetPeltierVoltage(output); // set the output
|
||||
boSetPeltierVoltage( output ); // set the output
|
||||
|
||||
} else if (VARH_uGetVariableData(VARH_eMode).u32Val == PECO_eConst_Voltage)
|
||||
} else if ( VARH_u32GetVariableData( VARH_eMode ) == PECO_eConst_Voltage )
|
||||
{
|
||||
boSetPeltierVoltage(VARH_uGetVariableData(VARH_eControlVoltage).flVal); // set the output
|
||||
boSetPeltierVoltage( VARH_flGetVariableData( VARH_eControlVoltage ) ); // set the output
|
||||
}
|
||||
|
||||
}
|
||||
@ -307,7 +307,7 @@ BOOL boSetPeltierVoltage( FLOAT Voltage ){
|
||||
if( Voltage > 12 ) Voltage = 12;
|
||||
if( Voltage < -3 ) Voltage = -3;
|
||||
|
||||
ANPO_boSetVoltage( (((FLOAT)Voltage) + 20.088) / 34.103 );
|
||||
ANPO_boSetVoltage( ( ( (FLOAT)Voltage ) + 20.088) / 34.103 );
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ BOOL SPID_boSend( SPID_StHandle* pstHandle )
|
||||
u32Flags = osEventFlagsWait( m_pstEventID, m_astSPI[pstHandle->enSPI].u32SPICompleteFlag | m_astSPI[pstHandle->enSPI].u32SPIErrorFlag, osFlagsWaitAny, osWaitForever );
|
||||
}
|
||||
|
||||
boOK &= (u32Flags & m_astSPI[pstHandle->enSPI].u32SPIErrorFlag) ? FALSE : TRUE;
|
||||
boOK &= ( u32Flags & m_astSPI[pstHandle->enSPI].u32SPIErrorFlag ) ? FALSE : TRUE;
|
||||
|
||||
osMutexRelease( m_astSPI[pstHandle->enSPI].pstMutexID );
|
||||
|
||||
@ -238,7 +238,7 @@ BOOL SPID_boSendReceive( SPID_StHandle* pstHandle )
|
||||
u32Flags = osEventFlagsWait( m_pstEventID, m_astSPI[pstHandle->enSPI].u32SPICompleteFlag | m_astSPI[pstHandle->enSPI].u32SPIErrorFlag, osFlagsWaitAny, osWaitForever );
|
||||
}
|
||||
|
||||
boOK &= (u32Flags & m_astSPI[pstHandle->enSPI].u32SPIErrorFlag) ? FALSE : TRUE;
|
||||
boOK &= ( u32Flags & m_astSPI[pstHandle->enSPI].u32SPIErrorFlag ) ? FALSE : TRUE;
|
||||
|
||||
osMutexRelease( m_astSPI[pstHandle->enSPI].pstMutexID );
|
||||
|
||||
|
@ -73,7 +73,7 @@
|
||||
//=================================================================================================
|
||||
|
||||
PRIVATE FLOAT flConvertADCData( U16 dbRTemp );
|
||||
PRIVATE VOID vTempTask( PVOID arg );
|
||||
PRIVATE VOID vTask( PVOID arg );
|
||||
|
||||
//=================================================================================================
|
||||
// Section: LOCAL CONSTANTS
|
||||
@ -126,7 +126,7 @@ BOOL TEMP_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
boOK &= ((m_pstThreadID = osThreadNew( vTempTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
boOK &= ((m_pstThreadID = osThreadNew( vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
@ -142,7 +142,7 @@ BOOL TEMP_boInitializeModule( VOID )
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE VOID vTempTask( PVOID arg )
|
||||
PRIVATE VOID vTask( PVOID arg )
|
||||
{
|
||||
UNUSED( arg );
|
||||
U32 u32Flags;
|
||||
@ -156,15 +156,15 @@ PRIVATE VOID vTempTask( PVOID arg )
|
||||
|
||||
while( TRUE )
|
||||
{
|
||||
boOK &= ADCD_boReadData(ADCD_eHot, &error, &u16ADC_data[ADCD_eHot]);
|
||||
boOK &= ADCD_boReadData(ADCD_eCold, &error, &u16ADC_data[ADCD_eCold]);
|
||||
boOK &= ADCD_boReadData( ADCD_eHot, &error, &u16ADC_data[ADCD_eHot] );
|
||||
boOK &= ADCD_boReadData( ADCD_eCold, &error, &u16ADC_data[ADCD_eCold] );
|
||||
if( boOK )
|
||||
{
|
||||
flTempData[ADCD_eHot] = flConvertADCData( u16ADC_data[ADCD_eHot] );
|
||||
flTempData[ADCD_eCold] = flConvertADCData( u16ADC_data[ADCD_eCold] );
|
||||
VARH_vSetVariableDataFromSystem( VARH_eTemp_H, (VARH_UVariable)flTempData[ADCD_eHot] );
|
||||
VARH_vSetVariableDataFromSystem( VARH_eTemp_C, (VARH_UVariable)flTempData[ADCD_eCold] );
|
||||
VARH_vSetVariableDataFromSystem( VARH_eTemp_Diff, (VARH_UVariable)(flTempData[ADCD_eHot] - flTempData[ADCD_eCold]) );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eTemp_H, flTempData[ADCD_eHot] );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eTemp_C, flTempData[ADCD_eCold] );
|
||||
VARH_vSetVariableDataFromSystemFloat( VARH_eTemp_Diff, flTempData[ADCD_eHot] - flTempData[ADCD_eCold] );
|
||||
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
// *(.user_data)
|
||||
// . = ALIGN(4);
|
||||
// } > DATA*/
|
||||
//
|
||||
// ...
|
||||
//=================================================================================================
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user