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

📄 drv_lampv0.c.bak

📁 CC1000 Rf modem C codes for philips sLpc213X ARM MCU.
💻 BAK
📖 第 1 页 / 共 4 页
字号:
	TurnOff_DQ_DH_DL();
	Uart0SendString("IO1SET=DK_P1_24(toOFF)");	RF_SendString("IO1SET=DK_P1_24(toOFF)");
	IO1SET=DK__P1_24;	DelayMS_(SWITCH_DELAY_TIME);
		
	//turn on KQ,test KQ
	Uart0SendString("turn on DQ.");	RF_SendString("turn on DQ.");
	WatchDogClear();		//clr watchdog
	SynZeroPoint();

	IO0CLR=DQ__P0_07;		//set KQ  on
	IO1SET=DH__P1_16 ;		//set Q3 off
	IO0SET=DL__P0_28;		//set Q4 off

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
	//turn off all switch
	TurnOff_DQ_DH_DL();
	//test K1
	WatchDogClear();		//clr watchdog
	SynZeroPoint();
	LampStateAbs(Minus_02V5);		RF_SendString("Minus_02V5");

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
	
	//turn off all switch
	TurnOff_DQ_DH_DL();
	//test K2
	WatchDogClear();		//clr watchdog
	SynZeroPoint();
	LampStateAbs(Minus_05V0);		RF_SendString("Minus_05V0");

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
	
	//turn off all switch
	TurnOff_DQ_DH_DL();
	//test K3
	WatchDogClear();		//clr watchdog
	SynZeroPoint();
	LampStateAbs(Minus_10V0);		RF_SendString("Minus_10V0");
	
	WatchDogClear();		//clr watchdog	
	DelayMS_(2000);
	
	
	//turn off all switch
	TurnOff_DQ_DH_DL();
	//test K4
	WatchDogClear();		//clr watchdog
	SynZeroPoint();
	LampStateAbs(Minus_20V0);		RF_SendString("Minus_20V0");

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
	//turn off all switch
	TurnOff_DQ_DH_DL();
	//test K5
	WatchDogClear();		//clr watchdog
	SynZeroPoint();
	LampStateAbs(Plus_10V0);		RF_SendString("Plus_10V0");

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
	
	//turn off all switch
	TurnOff_DQ_DH_DL();

	Uart0SendString("Test over");				RF_SendString("Test over");
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
void LightLoopTest(void)
{
char dbuffer[100];

	if((TestDrvState>((Minus_37V5+Plus_10V0-Plus_00V0)*2))||(TestSecondTick!=0)) return;

////
	if		(TestDrvState<=Minus_37V5)
				LampStateAbs(TestDrvState);
	
	else if((TestDrvState>Minus_37V5)&&(TestDrvState<=Minus_37V5*2))
				LampStateAbs(Minus_37V5*2-TestDrvState);
	
	else if((TestDrvState>Minus_37V5*2)&&(TestDrvState<=(Minus_37V5*2+Plus_10V0-Plus_00V0)))
				LampStateAbs(Plus_00V0+(TestDrvState-Minus_37V5*2));
	
	else if((TestDrvState>(Minus_37V5*2+Plus_10V0-Plus_00V0))&&(TestDrvState<=((Minus_37V5+Plus_10V0-Plus_00V0)*2)))
				LampStateAbs(((Minus_37V5+Plus_10V0)*2-Plus_00V0-TestDrvState));
	
	sprintf(dbuffer,"TestDrvState=%d",TestDrvState);	RF_SendString(dbuffer);
	
	TestDrvState++;
	TestSecondTick=1;		//state stay time

#ifdef INCLUDE_LOOP_TEST
	if(TestDrvState>((Minus_37V5+Plus_10V0-Plus_00V0)*2)){

		TestDrvState=0;
		Uart0SendEnter();
		Uart0SendString("System enter loop test function !!!");
	}
#endif
	
	if(TestDrvState>((Minus_37V5+Plus_10V0-Plus_00V0)*2)){
		Uart0SendString("Test is over.");				RF_SendString("Test is over.");
	}
}

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
void Rel_DQ_toOFF(void)					//control KQ off
{

#ifdef EN_SYNCHRO_MAIN_POWER
uint32 tp1,tp2;

	IRQDisable();
	
	PINSEL0   	= PINSEL0 & 0xffff3fff;	// set p0.7 as gpio
	mSecondTick = 20*SYNCHRO_CYCLE_NUM;	// waitting for SYNCHRO_CYCLE_NUM cycles at most

	tp2 = IO0PIN & MPF_P0_07;
	do{
		tp1 = tp2;
		tp2 = IO0PIN & MPF_P0_07;

	#ifdef SYNCHRO_MAIN_POWER_FALLING
		if((tp1==MPF_P0_07)&&(tp2==0)) break ;
	#else
		if((tp1==0)&&(tp2==MPF_P0_07)) break ;
	#endif
	
	}while(mSecondTick>1);	
	if(mSecondTick<=1)	Uart0SendString("synchronization failed in Rel_DQ_toOFF()");

	EINT2_Initialize();	//restore MPF_P0_07 to interrupt mode
	IRQEnable();

#endif

////
	IO0CLR=DL__P0_28;		//set Q4 on
	DelayMS_(SCR_toON_DELAY_TIME);

	IO0SET=DQ__P0_07;		//set KQ  off
	DelayMS_(SWITCH_DELAY_TIME);

	IO0SET=DL__P0_28;		//set Q4 off
	DelayMS_(SCR_toOFF_DELAY_TIME);

	StateValue = StateValue & (~LIGHT_ON_FLG_BIT);
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////// QS is complex switch
void Rel_DQ_toON(void)
{
	IO0CLR=DL__P0_28;			//set Q4 on
	DelayMS_(SCR_toON_DELAY_TIME);

	IO0CLR=DQ__P0_07;			//set KQ  on
	DelayMS_(SWITCH_DELAY_TIME);

	IO0SET=DL__P0_28;			//set Q4 off
	StateValue = StateValue|LIGHT_ON_FLG_BIT;	
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void SCR_DH_toON(void)		//set Q3 on	
{
	IO1CLR=DH__P1_16;		//set Q3 on
	DelayMS_(SCR_toON_DELAY_TIME);
}

//////////////////////////////////////////////////////////////
void SCR_DH_toOFF(void)		//set Q3 off
{
	IO1SET=DH__P1_16;		//set Q3 off
	DelayMS_(SCR_toOFF_DELAY_TIME);
}	

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void Rel_DK_toON(void)
{
	IO1CLR=DK__P1_24;		//relay DK turn ON
	DelayMS_(SWITCH_DELAY_TIME);
}

//////////////////////////////////////////////////////////////
void Rel_DK_toOFF(void)
{
	IO1SET=DK__P1_24;		//relay DK turn OFF
	DelayMS_(SWITCH_DELAY_TIME);
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void ForceLampState(uint16 DriveValue)
{
char dbuffer[100];

	switch(DriveValue){

		case Minus_00V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();				//set Q3 on

			IO0SET=DK1_P0_06;			//set K1  off
			IO0SET=DK2_P0_05;			//set K2  off
			IO1SET=DK3_P1_25;			//set K3  off
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_00V0;
			break;
			
		case Minus_02V5:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
						
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0SET=DK2_P0_05;			//set K2  off
			IO1SET=DK3_P1_25;			//set K3  off
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();	
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_02V5;
			break;
			
		case Minus_05V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on

			IO0SET=DK1_P0_06;			//set K1  off
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1SET=DK3_P1_25;			//set K3  off
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();		
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_05V0;
			break;
			
		case Minus_07V5:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on

			IO0CLR=DK1_P0_06;			//set K1  on
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1SET=DK3_P1_25;			//set K3  off
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();		
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_07V5;
			break;
			
		case Minus_10V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
						
			IO0SET=DK1_P0_06;			//set K1  off
			IO0SET=DK2_P0_05;			//set K2  off		
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();		
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_10V0;
			break;
			
		case Minus_12V5:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0SET=DK2_P0_05;			//set K2  off		
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();		
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_12V5;
			break;
			
		case Minus_15V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0SET=DK1_P0_06;			//set K1  off
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();		
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_15V0;
			break;
			
		case Minus_17V5:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0SET=DK4_P0_04;			//set K4  off
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();	
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_17V5;
			break;
			
		case Minus_20V0:
			Rel_DK_toON();		
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
				
			IO0SET=DK1_P0_06;			//set K1  off
			IO0SET=DK2_P0_05;			//set K2  off		
			IO1SET=DK3_P1_25;			//set K3  off
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();
			Rel_DK_toOFF();
			
			StateValue   = (StateValue & 0xff00) | Minus_20V0;
			break;
			
		case Minus_22V5:
			Rel_DK_toON();		
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0SET=DK2_P0_05;			//set K2  off		
			IO1SET=DK3_P1_25;			//set K3  off
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();
			Rel_DK_toOFF();
							
			StateValue   = (StateValue & 0xff00) | Minus_22V5;
			break;
			
		case Minus_25V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0SET=DK1_P0_06;			//set K1  off
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1SET=DK3_P1_25;			//set K3  off
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();
			Rel_DK_toOFF();
								
			StateValue   = (StateValue & 0xff00) | Minus_25V0;
			break;	
			
		case Minus_27V5:
			Rel_DK_toON();
			Rel_DQ_toOFF();
			SCR_DH_toON();			//set Q3 on
			
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1SET=DK3_P1_25;			//set K3  off
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			
			SCR_DH_toOFF();			//set Q3 off
			Rel_DQ_toON();
			Rel_DK_toOFF();
						
			StateValue   = (StateValue & 0xff00) | Minus_27V5;
			break;
			
		case Minus_30V0:
			Rel_DK_toON();
			Rel_DQ_toOFF();

⌨️ 快捷键说明

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