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

📄 app_boarddemomode.c

📁 BCM 控制demo源代码
💻 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 + -