?? app_boarddemomode.c
字號:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file app_boardDemoMode.c
\brief Autonomous demonstration mode
\author Freescale Semiconductor
\author B05114
\version 0.2
\date March/2008
*/
/*******************************************************************************/
/** Variable types and common definitions */
#include "typedefs.h"
/** GPIO definitions */
#include "lle_GPIO.h"
/** Definitions and function prototypes for timers */
#include "lle_TIME.h"
/** Demo mode definitions */
#include "app_boardDemoMode.h"
/** XGATE PWM generation */
#include "lle_XGPWM.h"
/* APD devices definitions */
#include "app_boardDevCtrl.h"
#include "des_MC33879.h"
#include "des_MC33972.h"
#include "des_MC15XS3400.h"
#include "des_MC35XS3400.h"
#include "des_MC10XS3412.h"
#include "app_boardWakeFnc.h"
/** Scheduler flag */
extern UINT8 PITflag;
/** Keyboard status */
extern MSDI_Stat32b kbrdStat;
extern void app_EEPROMClearWakeAct(void);
/*******************************************************************************/
/**
* \brief Autonomous demo mode
* \author B05114
* \param void
* \return void
*/
void app_Autodemo_Mode(void)
{
UINT8 u8DemoMode_Task = INITIAL_TASK;
UINT8 u8PWM = 0;
UINT8 u8Counter = 0;
if(S2 == 0) /* If S2 is pressed BCU enters auto-demo mode */
{
app_EEPROMClearWakeAct(); /* Clear stored wake-up flag */
lle_Init_RTI(RTI_150ms); /* Real time interrupt at 150 ms */
/* Default value if no push-button is pressed in stimulus board */
kbrdStat.SGinputs = 0x00;
while(!kbrdStat.SGinputs)
{
if(PITflag == 1)
{
PITflag = 0;
u8Counter = u8Counter + 5;
app_boardWatchdogUpd(); /* Reset watchdogs */
des_MC10XS3412_ClrWDT();
des_MC15XS3400_ClrWDT();
des_MC35XS3400_ClrWDT();
if (u8Counter <= 0x7F) u8PWM = u8Counter;
else u8PWM = 0xFF - u8Counter;
switch(u8DemoMode_Task)
{
case FRONT_LIGHTS:
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, MAX_PWM);
if (u8Counter == 0xFF)
{
des_MC10XS3412_HS_Control(XS_HS0, XS_OFF, MAX_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_OFF, MAX_PWM);
}
break;
case TOGGLE_LIGHTS:
if(u8Counter & 0x20)
{
/* Turn lights Off */
des_MC35XS3400_HS_Control(XS_HS0, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_OFF, MAX_PWM);
/* Rear lights Off */
des_MC35XS3400_HS_Control(XS_HS2, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_OFF, MAX_PWM);
}
else
{
/* Turn lights On */
des_MC35XS3400_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_ON, MAX_PWM);
/* Rear lights On */
des_MC35XS3400_HS_Control(XS_HS2, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_ON, MAX_PWM);
}
break;
case CABIN_LIGHTS:
des_MC15XS3400_HS_Control(XS_HS1, XS_ON, u8PWM);
des_MC15XS3400_HS_Control(XS_HS2, XS_ON, u8PWM);
break;
case TURN_LIGHTS:
des_MC35XS3400_HS_Control(XS_HS0, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_ON, u8PWM);
break;
case REAR_LIGHTS:
des_MC35XS3400_HS_Control(XS_HS2, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_ON, u8PWM);
break;
case BREAK_LIGHTS:
des_MC15XS3400_HS_Control(XS_HS0, XS_ON, u8PWM);
break;
case BLUE_LIGHTS:
des_MC33879_Output_Control(COSS_OUT6,OFF);
lle_Set_PWM_DutyCycle(&xPWM_ch[0],u8PWM);
break;
case DIMM_LIGHTS:
if((u8PWM < MIN_PWM)&(u8Counter < 0x7F))
{
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, MIN_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, MIN_PWM);
}
else
{
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, u8PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, u8PWM);
}
des_MC15XS3400_HS_Control(XS_HS1, XS_ON, u8PWM);
des_MC15XS3400_HS_Control(XS_HS2, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS0, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS2, XS_ON, u8PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_ON, u8PWM);
des_MC15XS3400_HS_Control(XS_HS0, XS_ON, u8PWM);
des_MC33879_Output_Control(COSS_OUT6,OFF);
lle_Set_PWM_DutyCycle(&xPWM_ch[0],u8PWM);
break;
case ALL_LIGHTS:
if(u8Counter < 5)
{
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, MIN_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, MIN_PWM);
}
else
{
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, MAX_PWM);
}
des_MC10XS3412_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_ON, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS1, XS_ON, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS2, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS2, XS_ON, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_ON, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS0, XS_ON, MAX_PWM);
des_MC33879_Output_Control(COSS_OUT6,OFF);
lle_Set_PWM_DutyCycle(&xPWM_ch[0],MAX_PWM);
break;
case NO_LIGHTS:
des_MC10XS3412_HS_Control(XS_HS0, XS_OFF, MAX_PWM);
des_MC10XS3412_HS_Control(XS_HS1, XS_OFF, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS1, XS_OFF, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS2, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS0, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS1, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS2, XS_OFF, MAX_PWM);
des_MC35XS3400_HS_Control(XS_HS3, XS_OFF, MAX_PWM);
des_MC15XS3400_HS_Control(XS_HS0, XS_OFF, MAX_PWM);
des_MC33879_Output_Control(COSS_OUT6,OFF);
lle_Set_PWM_DutyCycle(&xPWM_ch[0],0x00);
break;
default:
break;
}
if(u8PWM == 0)
{
u8DemoMode_Task ++;
u8Counter = 0;
}
if(u8DemoMode_Task == LAST_TASK)
u8DemoMode_Task = INITIAL_TASK;
}
/* Read push-buttons status */
kbrdStat = des_MC33972_Read_Status(MSDI_I);
}
lle_Init_RTI(RTI_50ms); /* Real time interrupt at 50ms */
}
}
/*******************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -