⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app_boardloadctrl.c

📁 BCM 控制demo源代码
💻 C
字号:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file       app_boardLoadCtrl.c
\brief      Main board control 
\author     Freescale Semiconductor
\author     rc574c
\version    0.1
\date       May/2007
*/
/*******************************************************************************/

#include "app_boardLoadCtrl.h"
#include "main.h"
#include "des_MC33742.h"
#include "des_MC33972.h"
#include "app_boardDevCtrl.h" 

// FreeMASTER control variables
extern UINT8  fm_status, fm_task, fm_action0, fm_action1, fm_action2, fm_action3,
              fm_action4, fm_action5, fm_action6, fm_action7, fm_action8, fm_action9,
              fm_action10, fm_action11, fm_action12, fm_action13, fm_action14, fm_action15;
              
// FreeMASTER analog values variables   
extern UINT16  fm_analog1, fm_analog2, fm_analog3, fm_analog4, fm_analog5;

// Main board next action, when controlled by pushbuttons
UINT8	next_action1, next_action2, next_action3, next_action4, next_action5, 
        next_action6, next_action7, next_action8, next_action9; 

// eSwitch pwm control selector
UINT8   pwm1, pwm2, pwmCtr1, pwmCtr1Next, pwmCtr2, pwmCtr2Next, pwmCtr3, pwmCtr3Next;

// MC33972 MSDI II tristate SP/SG cmd 
extern UINT16 msdiIISpTrist, msdiIISgTrist;
               
// Keyboard status
MSDI_Stat32b kbrdStat;

/*******************************************************************************/
/**
* \brief    Cabin, turn and rear lights PWM duty cycle selection
* \author   rc574c
* \param    none
* \return   void
*/
void app_boardLoadPwmSel(void)
{
	// MSDI Board II pushbutton S1
	if (fm_analog5 == 1)
	{
		pwmCtr1 = pwmCtr1Next;
	}
	else
	{
		pwmCtr1Next = (0x01 & (~pwmCtr1));	
	}
	
	// MSDI Board II pushbutton S2 	
	if (fm_analog5 == 2)
	{
		pwmCtr2 = pwmCtr2Next;
	}
	else
	{
		pwmCtr2Next = (0x01 & (~pwmCtr2));	
	}
	
	// MSDI Board II pushbutton S3
	if (fm_analog5 == 3)
	{
		pwmCtr3 = pwmCtr3Next;
	}
	else
	{
		pwmCtr3Next = (0x01 & (~pwmCtr3));	
	}  

  // Control MSDI Board II S1 LED 
  if (pwmCtr1)
  {
    // MSDI Board II S1 LED ON
		msdiIISgTrist = msdiIISgTrist & ~MSDI_SG4;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }
  else
  {
  	// MSDI Board II S2 LED OFF
		msdiIISgTrist = msdiIISgTrist | MSDI_SG4;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }
  
  // Control MSDI Board II S2 LED
  if (pwmCtr2)
  {
    // MSDI Board II S2 LED ON
		msdiIISgTrist = msdiIISgTrist & ~MSDI_SG2;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }
  else
  {
 		// MSDI Board II S2 LED OFF
		msdiIISgTrist = msdiIISgTrist | MSDI_SG2;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }
  
  // Control MSDI Board II S3 LED
  if (pwmCtr3)
  {
 	  // MSDI Board II S3 LED ON
		msdiIISgTrist = msdiIISgTrist & ~MSDI_SG0;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }
  else
  {
 	  // MSDI Board II S2 LED OFF
		msdiIISgTrist = msdiIISgTrist | MSDI_SG0;
		des_MC33972_Set_SG_HighImpedance(MSDI_II, msdiIISgTrist);
  }

	// 12bit ADC, 8-bit PWM MC33789 COSS Lite
	pwm1 = (UINT8)(fm_analog1 >> 4) & 0x00FF;
	// 12bit ADC, 7-bit PWM MC15XS3400, MC35XS3400, MC10XS3412 eSwitch
	pwm2 = (UINT8)(fm_analog2 >> 5) & 0x007F;	
}

/*******************************************************************************/
/**
* \brief    Keyboard controls system variables 
* \author   rc574c
* \param    none
* \return   void
*/
void app_demoKeyboardState(void)
{
	kbrdStat = des_MC33972_Read_Status(MSDI_I);
	
#ifdef MSDI_I_PUSHBUTTONS
	
	// Body Demo MSDI board I, switch 7 - Front Lights 55W, MSDI SG6
	if ((kbrdStat.SGinputs) & MSDI_SG6)
	{
		fm_action2 = next_action2;	 
	}
	else
	{
		next_action2 = (0x01 & (~fm_action2));
	}
	
	// Body Demo MSDI board I, switch 8 - Brake LED Light, MSDI SG7
	if ((kbrdStat.SGinputs) & MSDI_SG7)
	{
		fm_action1 = next_action1;
	}
	else
	{
		next_action1 = (0x01 & (~fm_action1));	
	}
	
	// Body Demo MSDI board I, switch 9 - Interior LED Light, MSDI SG8
	if ((kbrdStat.SGinputs) & MSDI_SG8)
	{
		fm_action6 = next_action6;
	}
	else
	{
		next_action6 = (0x01 & (~fm_action6));	
	}
	
	// Body Demo MSDI board I, switch 4 - Turn Lights 5W, MSDI SG3
	if ((kbrdStat.SGinputs) & MSDI_SG3)
	{
		fm_action3 = next_action3;
	}
	else
	{
		next_action3 = (0x01 & (~fm_action3));	
	}

	// Body Demo MSDI board I, switch 5 - Rear Lights 5W, MSDI SG4
	if ((kbrdStat.SGinputs) & MSDI_SG4)	
	{
		fm_action4 = next_action4;
	}
	else
	{
		next_action4 = (0x01 & (~fm_action4));	
	}

	// Body Demo MSDI board I, switch 6 - Cabin Lights 5W, MSDI SG5	
	if ((kbrdStat.SGinputs) & MSDI_SG5)
	{
		fm_action5 = next_action5;
	}
	else
	{
		next_action5 = (0x01 & (~fm_action5));	
	}
	
	// Body Demo MSDI board I, switch 1 - Door Locks, MSDI SG0	
	if ((kbrdStat.SGinputs) & MSDI_SG0)
	{
		fm_action7 = next_action7;
	}
	else
	{
		next_action7 = (0x01 & (~fm_action7));	
	}
	
	// Body Demo MSDI board I, switch 2 - Washer pump, MSDI SG1	
	if ((kbrdStat.SGinputs) & MSDI_SG1)
	{
		fm_action8 = 1;     
		//fm_action8 = next_action8; 
	}
	else
	{
		fm_action8 = 0;       
		//next_action8 = (0x01 & (~fm_action8));	
	}

	// Body Demo MSDI board I, switch 3 - Dashboard Lights, MSDI SG2	
	if ((kbrdStat.SGinputs) & MSDI_SG2)
	{
		fm_action15 = next_action9;
	}
	else
	{
		next_action9 = (0x01 & (~fm_action15));	
	}
	
#endif

#ifdef MSDI_I_SWITCHES
	
	// Body Demo MSDI board I, switch 7 - Front Lights 55W, MSDI SG6
	if ((kbrdStat.SGinputs) & MSDI_SG6)
	{
		fm_action2 = 1;
	}
	else
	{
		fm_action2 = 0;	
	}
	
	// Body Demo MSDI board I, switch 8 - Brake LED Light, MSDI SG7
	if ((kbrdStat.SGinputs) & MSDI_SG7)
	{
		fm_action1 = 1;
	}
	else
	{
		fm_action1 = 0;	
	}
	
	// Body Demo MSDI board I, switch 9 - Interior LED Light, MSDI SG8
	if ((kbrdStat.SGinputs) & MSDI_SG8)
	{
		fm_action6 = 1;
	}
	else
	{
		fm_action6 = 0;	
	}
	
	// Body Demo MSDI board I, switch 4 - Turn Lights 5W, MSDI SG3
	if ((kbrdStat.SGinputs) & MSDI_SG3)
	{
		fm_action3 = 1;
	}
	else
	{
		fm_action3 = 0;	
	}

	// Body Demo MSDI board I, switch 5 - Rear Lights 5W, MSDI SG4
	if ((kbrdStat.SGinputs) & MSDI_SG4)	
	{
		fm_action4 = 1;
	}
	else
	{
		fm_action4 = 0;	
	}

	// Body Demo MSDI board I, switch 6 - Cabin Lights 5W, MSDI SG5	
	if ((kbrdStat.SGinputs) & MSDI_SG5)
	{
		fm_action5 = 1;
	}
	else
	{
		fm_action5 = 0;	
	}
	
	// Body Demo MSDI board I, switch 1 - Door Locks, MSDI SG0	
	if ((kbrdStat.SGinputs) & MSDI_SG0)
	{
		fm_action7 = 1;
	}
	else
	{
		fm_action7 = 0;	
	}

	// Body Demo MSDI board I, switch 2 - Washer pump, MSDI SG1	
	if ((kbrdStat.SGinputs) & MSDI_SG1)
	{		
		fm_action8 = 1;    
	}
	else
	{
		fm_action8 = 0;    	 
	}	

	// Body Demo MSDI board I, switch 3 - Dashboard Lights, MSDI SG2	
	if ((kbrdStat.SGinputs) & MSDI_SG2)
	{
		fm_action15 = 1;
	}
	else
	{
		fm_action15 = 0;	
	}
	
#endif
}

/*******************************************************************************/
/**
* \brief    Main board control 
* \author   rc574c
* \param    none
* \return   void
*/
void app_boardLoadCtrl(void)
{
	// Load data for MC33879, MC15XS3400, MC35XS3400, MC10XS3412 PWM
	app_boardLoadPwmSel();
	
	// Brake LED Light control 
	if (fm_action1)
	{
		// Turn ON Brake LED Light
		app_lightBrakeON();
	}
	else
	{
		// Turn OFF Brake LED Light
		app_lightBrakeOFF();
	}
	
	// Front Lights 55W control 
	if (fm_action2)
	{
		// Turn ON Front Lights 55W
		app_light55WON();
	}
	else
	{
		// Turn OFF Front Lights 55W
		app_light55WOFF();
	}
	
	// Turn Lights 5W control 
	if (fm_action3)
	{
		// Turn ON Turn Lights 5W, apply PWM
		app_lightTurnON();
	}
	else
	{
		// Turn OFF Turn Lights 5W
		app_lightTurnOFF();
	}
	
	// Rear Lights 5W control 
	if (fm_action4)
	{
		// Turn ON Rear Lights 5W, apply PWM
		app_lightRearON();
	}
	else
	{
		// Turn OFF Rear Lights 5W
		app_lightRearOFF();
	}
	
	// Cabin Lights 5W control 
	if (fm_action5)
	{
		// Turn ON Cabin Lights 5W, apply PWM
		app_lightCabinON();
	}
	else
	{
		// Turn OFF Cabin Lights 5W
		app_lightCabinOFF();
	}
	
	// Interior LED Light control
	if (fm_action6)
	{	
		// Turn ON Interior LED Light, apply PWM
		app_lightInteriorON();
	}
	else
	{
		// Turn OFF Interior LED Light
		app_lightInteriorOFF();
	}
	
	// Dashboard LED Light control
	if (fm_action15)
	{	
		// Turn ON Dashboard LED Light
		app_lightDashboardON();
	}
	else
	{
		// Turn OFF Dashboard LED Light
		app_lightDashboardOFF();
	}
	
	// Door Lock control 
	if (fm_action7)
	{
		// Close Door Lock 
		app_doorLockCLOSE(); 	
	}
	else
	{
		// Open Door Lock
		app_doorLockOPEN(); 		 
	}
	
	// Washer Pump control 
	if (fm_action8)
	{
		// Turn ON Washer Pump
		app_washerPumpON();
	}
	else
	{
		// Turn OFF Washer Pump
		app_washerPumpOFF();
	}
	
	// MSDI Sink/Source current 
	switch (fm_action9)
	{
		case 0:
		{
			// No sink/source
			app_msdiCurNon();
			break;
		}
		
		case 1:
		{
			// Sink current
            app_msdiCurNon();
			app_msdiCurSink();
			break;
		}
		
		case 2:
		{
			// Source current 
            app_msdiCurNon();
			app_msdiCurSrc();
			break;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -