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

📄 drv_lampv1.c

📁 CC1000 Rf modem C codes for philips sLpc213X ARM MCU.
💻 C
📖 第 1 页 / 共 4 页
字号:
	if(DK_buff==0x0){
		Uart0SendString("IO1SET=DK_P1_24(toOFF)");	
		RF_SendString("IO1SET=DK_P1_24(toOFF)");
		IO1SET=DK__P1_24;	//toOFF
		DK_buff=1;
	}else{
		Uart0SendString("IO1CLR=DK_P1_24(toON)");	
		RF_SendString("IO1CLR=DK_P1_24(toON)");
		IO1CLR=DK__P1_24;	//toON
		DK_buff=0;
	}
}

///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
void TurnOff_DQ_DH_DL(void)
{
	Uart0SendString("turn off DQ/DH/DL");
	RF_SendString("turn off DQ/DH/DL");
	WatchDogClear();		//clr watchdog
	SynZeroPoint_DL();
	
	IO0SET=DQ__P0_07;		//set DQ off
	IO1SET=DH__P1_16 ;		//set DH off
	IO0SET=DL__P0_28;		//set DL off
	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
}

//////////////////////////////////////////////////////////////////
void TestPowerSwitch(void)
{
	Uart0SendEnter(); 	Uart0SendString("PowerSwitch testing...");	
	RF_SendEnter();		RF_SendString("PowerSwitch testing...");

//turn off all switch
	TurnOff_DQ_DH_DL();
//turn on DH,test DH
	Uart0SendString("turn on DH.");	RF_SendString("turn on DH.");
	WatchDogClear();		//clr watchdog
	SynZeroPoint_DH();

	IO0SET=DQ__P0_07;		//set DQ off
	IO1CLR=DH__P1_16 ;		//set DH on
	IO0SET=DL__P0_28;		//set DL off

	WatchDogClear();				//clr watchdog	
	DelayMS_(1000);

//turn off all switch
	TurnOff_DQ_DH_DL();
//turn on DL,test DL
	Uart0SendString("turn on DL.");	RF_SendString("turn on DL.");	
	WatchDogClear();		//clr watchdog
	SynZeroPoint_DL();

	IO0SET=DQ__P0_07;		//set DQ off
	IO1SET=DH__P1_16 ;		//set DH off
	IO0CLR=DL__P0_28;		//set DL on 

	WatchDogClear();				//clr watchdog
	DelayMS_(1000);

//turn off all switch
	TurnOff_DQ_DH_DL();
//turn on DQ,test DQ
	Uart0SendString("turn on DQ.");	RF_SendString("turn on DQ.");
	WatchDogClear();		//clr watchdog
	SynZeroPoint_DL();

	IO0CLR=DQ__P0_07;		//set DQ  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_DL();
	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_DL();
	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_DL();
	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_DL();
	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_DL();
	LampStateAbs(Plus_10V0);		RF_SendString("Plus_10V0");

	WatchDogClear();		//clr watchdog
	DelayMS_(2000);
	
//turn off all switch
	TurnOff_DQ_DH_DL();
	IO1SET = DK__P1_24;		//turn off DK relay
	DelayMS_(SWITCH_DELAY_TIME);

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

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

	if((TestDrvState>(((Minus_37V5+Plus_10V0-Plus_00V0)*2)-8))||(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 DQ off
{
	SynZeroPoint_DL();		//set DK on

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

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

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

	IO1SET=DK__P1_24;		//set DK off

	StateValue = StateValue & (~LIGHT_ON_FLG_BIT);
}
///////////////////////////////////////////////////////////////
//////////////////////////////////////// QS is complex switch
void Rel_DQ_toON(void)
{
	SynZeroPoint_DL();			//set DK on
	
	IO0CLR=DL__P0_28;			//set DL on
	DelayMS_(SCR_toON_DELAY_TIME);

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

	IO0SET=DL__P0_28;			//set DL off
	DelayMS_(SCR_toOFF_DELAY_TIME);
	
	IO1SET=DK__P1_24;			//set DK off
	
	StateValue = StateValue|LIGHT_ON_FLG_BIT;	
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void Cha_DQ_toOFF(void)					//change DQ off
{
	IO1CLR=DK__P1_24;		//set DK on
	DelayMS_(SWITCH_DELAY_TIME);
	
	IO0CLR=DL__P0_28;		//set DL on
	DelayMS_(SCR_toON_DELAY_TIME);

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

	SynZeroPoint_DH();
	IO1CLR=DH__P1_16;		//set DH on
	IO0SET=DL__P0_28;		//set DL off
	DelayMS_(SCR_toON_DELAY_TIME);
}
//////////////////////////////////////////////////////////////
//////////////////////////////////////// QS is complex switch
void Cha_DQ_toON(void)
{
	SynZeroPoint_DL();			//set DK on
	IO0CLR=DL__P0_28;			//set DL on
	IO1SET=DH__P1_16;			//set DH off
	DelayMS_(SCR_toON_DELAY_TIME);
	
	IO0CLR=DQ__P0_07;			//set DQ  on
	DelayMS_(SWITCH_DELAY_TIME);

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

	IO1SET=DK__P1_24;			//set DK off
}

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void SCR_DH_toON(void)		//set DH on	
{
	IO1CLR=DH__P1_16;		//set DH 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:
			Cha_DQ_toOFF();

			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);
			
			Cha_DQ_toON();

			StateValue   = (StateValue & 0xff00) | Minus_00V0;
			break;
			
		case Minus_02V5:
			Cha_DQ_toOFF();
						
			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);
			
			Cha_DQ_toON();
			
			StateValue   = (StateValue & 0xff00) | Minus_02V5;
			break;
			
		case Minus_05V0:
			Cha_DQ_toOFF();

			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);
			
			Cha_DQ_toON();	
			
			StateValue   = (StateValue & 0xff00) | Minus_05V0;
			break;
			
		case Minus_07V5:
			Cha_DQ_toOFF();

			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);
			
			Cha_DQ_toON();	
			
			StateValue   = (StateValue & 0xff00) | Minus_07V5;
			break;
			
		case Minus_10V0:
			Cha_DQ_toOFF();
						
			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);
			
			Cha_DQ_toON();	
			
			StateValue   = (StateValue & 0xff00) | Minus_10V0;
			break;
			
		case Minus_12V5:
			Cha_DQ_toOFF();
			
			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);
			
			Cha_DQ_toON();	
			
			StateValue   = (StateValue & 0xff00) | Minus_12V5;
			break;
			
		case Minus_15V0:
			Cha_DQ_toOFF();
			
			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);
			
			Cha_DQ_toON();	
			
			StateValue   = (StateValue & 0xff00) | Minus_15V0;
			break;
			
		case Minus_17V5:
			Cha_DQ_toOFF();
			
			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);
			
			Cha_DQ_toON();
			
			StateValue   = (StateValue & 0xff00) | Minus_17V5;
			break;
			
		case Minus_20V0:
			Cha_DQ_toOFF();
				
			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);
			
			Cha_DQ_toON();
			
			StateValue   = (StateValue & 0xff00) | Minus_20V0;
			break;
			
		case Minus_22V5:
			Cha_DQ_toOFF();
			
			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);
			
			Cha_DQ_toON();
							
			StateValue   = (StateValue & 0xff00) | Minus_22V5;

⌨️ 快捷键说明

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