add PECO Timer & Task
This commit is contained in:
@ -195,7 +195,7 @@ BOOL MAIN_boInitializeModule( VOID )
|
||||
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 ? TRUE : FALSE;
|
||||
boOK &= (m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute )) == NULL ? FALSE : TRUE;
|
||||
|
||||
/*boOK &= VARH_boRegisterRangeCheck( VARH_eVoltageRefEn, VARH_boBooleanVarCheck, NULL );
|
||||
|
||||
@ -340,7 +340,7 @@ PRIVATE VOID vMainTask( PVOID arg )
|
||||
}
|
||||
if( u32Flags & EVENT_TIMER_UPDATE )
|
||||
{
|
||||
//DIPO_vToggleOutput(DIPO_eLED);
|
||||
DIPO_vToggleOutput(DIPO_eLED);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,9 @@
|
||||
// Description: Definition of local constants (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
#define EVENT_TIMER_UPDATE ((U32)(1<<0))
|
||||
|
||||
#define EVENT_FLAGS_ALL ( EVENT_TIMER_UPDATE )
|
||||
|
||||
//=================================================================================================
|
||||
// Section: MACROS
|
||||
@ -81,6 +83,8 @@
|
||||
//=================================================================================================
|
||||
|
||||
LOCAL osThreadId_t m_pstThreadID = NULL;
|
||||
LOCAL osTimerId_t m_pstUpdateTimer = NULL;
|
||||
LOCAL osEventFlagsId_t m_pstEventID = NULL;
|
||||
|
||||
BOOL boEnableOutput = FALSE;
|
||||
|
||||
@ -103,6 +107,23 @@ LOCAL CONST osThreadAttr_t stTaskAttribute =
|
||||
0, // reserved (must be 0)
|
||||
};
|
||||
|
||||
LOCAL CONST osTimerAttr_t stTimerAttribute =
|
||||
{
|
||||
"PECO_UpdateTimer", // name of the timer
|
||||
0, // attribute bits
|
||||
NULL, // memory for control block
|
||||
0, // size of provided memory for control block
|
||||
};
|
||||
|
||||
LOCAL CONST osEventFlagsAttr_t stEventAttribute =
|
||||
{
|
||||
"PECO_Event_Flags", // name of the event flags
|
||||
0, // attribute bits
|
||||
NULL, // memory for control block
|
||||
0, // size of provided memory for control block
|
||||
};
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: LOCAL FUNCTIONS (PROTOTYPES)
|
||||
// Description: Definition of local functions (visible by this module only).
|
||||
@ -110,6 +131,7 @@ LOCAL CONST osThreadAttr_t stTaskAttribute =
|
||||
|
||||
PRIVATE VOID PECO_vTask( PVOID arg );
|
||||
BOOL boSetPeltierVoltage( S16 Voltage );
|
||||
PRIVATE VOID vEventCallback( PVOID pvData );
|
||||
|
||||
//=================================================================================================
|
||||
// Section: EXTERNAL FUNCTIONS
|
||||
@ -142,9 +164,13 @@ 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;
|
||||
|
||||
boSetPeltierVoltage(0);
|
||||
|
||||
boOK &= (osTimerStart( m_pstUpdateTimer, 1000 ) == osOK ) ? TRUE : FALSE;
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
|
||||
@ -197,22 +223,25 @@ BOOL PECO_isEnabled( VOID ){
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID PECO_vTask( PVOID arg )
|
||||
{
|
||||
|
||||
/*PECO_Enable(TRUE);
|
||||
|
||||
UNUSED( arg );
|
||||
U32 u32Flags;
|
||||
|
||||
while ( TRUE )
|
||||
{
|
||||
|
||||
boSetPeltierVoltage(1);
|
||||
osDelay(5000);
|
||||
boSetPeltierVoltage(0);
|
||||
osDelay(5000);
|
||||
boSetPeltierVoltage(-1);
|
||||
osDelay(5000);
|
||||
boSetPeltierVoltage(0);
|
||||
osDelay(5000);
|
||||
|
||||
u32Flags = osEventFlagsWait( m_pstEventID, EVENT_FLAGS_ALL, osFlagsWaitAny, osWaitForever );
|
||||
|
||||
if( u32Flags & EVENT_TIMER_UPDATE )
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -228,11 +257,20 @@ BOOL boSetPeltierVoltage( S16 Voltage ){
|
||||
if( Voltage > 14000 ) Voltage = 14000;
|
||||
if( Voltage < -8000 ) Voltage = -8000;
|
||||
|
||||
//Voltage -= 0.6; // Offset (hoffentlich nicht mehr)
|
||||
|
||||
boOK &= ANPO_boSetVoltage( ((((FLOAT)Voltage)/1000) + 20.088) / 34.103 );
|
||||
|
||||
return( boOK );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: vEventCallback
|
||||
// Description: Callback for events
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE VOID vEventCallback( PVOID pvData )
|
||||
{
|
||||
osEventFlagsSet( m_pstEventID, (U32)pvData );
|
||||
}
|
||||
|
||||
|
||||
|
@ -245,9 +245,7 @@ PRIVATE VOID vTempTask( PVOID arg )
|
||||
if( boOK )
|
||||
{
|
||||
osMutexAcquire( m_pstMutexID, osWaitForever );
|
||||
DIPO_vSetOutput(DIPO_eLED);
|
||||
m_flTempData[ADCD_eHot] = flConvertADCData( u16ADC_data[ADCD_eHot] );
|
||||
DIPO_vResetOutput(DIPO_eLED);
|
||||
//temp = flConvertADCData( u16ADC_data[ADCD_eHot] ); // for debugging
|
||||
//VARH_vSetVariableData( VARH_eTempHeatSink + u8Channel, (VARH_UVariable)(FLOAT)m_dbTempData[u8Channel] );
|
||||
osMutexRelease( m_pstMutexID );
|
||||
|
Reference in New Issue
Block a user