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

📄 drv_lampv0.c.bak

📁 CC1000 Rf modem C codes for philips sLpc213X ARM MCU.
💻 BAK
📖 第 1 页 / 共 4 页
字号:
			IO0CLR=DQ__P0_07;			//set KQ  on
			StateValue   = (StateValue & 0xff00) | Plus_00V0;
			break;
			
		case Plus_02V5:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on

			IO0CLR=DQ__P0_07;			//set KQ  on
			StateValue   = (StateValue & 0xff00) | Plus_02V5;
			break;
			
		case Plus_05V0:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on

			IO0CLR=DQ__P0_07;			//set KQ  on
			StateValue   = (StateValue & 0xff00) | Plus_05V0;
			break;
			
		case Plus_07V5:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on

			IO0CLR=DQ__P0_07;			//set KQ  on
			StateValue   = (StateValue & 0xff00) | Plus_07V5;
			break;
			
		case Plus_10V0:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on

			IO0CLR=DQ__P0_07;			//set KQ  on
			StateValue   = (StateValue & 0xff00) | Plus_10V0;
			break;
#endif
			
/////////////////////////////////////////////////////////////
		case Light_toON:
		
			IO0CLR=DQ__P0_07;		//set KQ  on
			break;
			
/////////////////////////////////////////////////////////////			
		case Light_toOFF:			//turn light off
		default:
		
			IO0SET=DQ__P0_07;		//set KQ  off
			
			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	??
						
			StateValue   = Light_toOFF;
			break;
	}

	sprintf(dbuffer,"Fast recover light state to 0x%x",StateValue); 
	Uart0SendString(dbuffer);
}

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

	IO1SET=DK__P1_24;			//relay DK turn OFF	
	IO0SET=DL__P0_28;			//set Q4 off	
	IO1SET=DH__P1_16 ;			//set Q3 off
	StateValue   = (StateValue & 0xff00) | DriveValue;

	switch(DriveValue){

		case Minus_00V0:				
			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);
			break;
			
		case Minus_02V5:				
			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);
			break;
			
		case Minus_05V0:				
			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);
			break;
			
		case Minus_07V5:				
			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);
			break;
			
		case Minus_10V0:				
			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);
			break;
			
		case Minus_12V5:				
			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);
			break;
			
		case Minus_15V0:				
			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);
			break;
			
		case Minus_17V5:				
			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);
			break;
			
		case Minus_20V0:				
			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);
			break;
			
		case Minus_22V5:				
			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);
			break;
			
		case Minus_25V0:				
			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);
			break;	
			
		case Minus_27V5:				
			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);
			break;
			
		case Minus_30V0:				
			IO0SET=DK1_P0_06;			//set K1  off	
			IO0SET=DK2_P0_05;			//set K2  off	
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			break;		
			
		case Minus_32V5:				
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0SET=DK2_P0_05;			//set K2  off
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			break;
			
		case Minus_35V0:				
			IO0SET=DK1_P0_06;			//set K1  off
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			break;
 
		case Minus_37V5:				
			IO0CLR=DK1_P0_06;			//set K1  on
			IO0CLR=DK2_P0_05;			//set K2  on
			IO1CLR=DK3_P1_25;			//set K3  on
			IO0CLR=DK4_P0_04;			//set K4  on
			IO1SET=DK5_P1_26;			//set K5  off
			DelayMS_(SWITCH_DELAY_TIME);
			break;
			
///////////////////////////////////////////////////////////////
#ifndef  VOLTAGE_ADJ_MINUS_PLUS

		case Plus_00V0:		//only for test of advertising board
		case Plus_02V5:
		case Plus_05V0:
		case Plus_07V5:
		case Plus_10V0:		//		case Plus_vMAX:

			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);
			break;

///////////////////////////////////////////////////////////////
#else	//#ifdef  VOLTAGE_ADJ_MINUS_PLUS
		case Plus_00V0:				
			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);
			break;
			
		case Plus_02V5:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on
			DelayMS_(SWITCH_DELAY_TIME);
			break;
			
		case Plus_05V0:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on
			DelayMS_(SWITCH_DELAY_TIME);
			break;
			
		case Plus_07V5:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on
			DelayMS_(SWITCH_DELAY_TIME);
			break;
			
		case Plus_10V0:				
			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
			IO1CLR=DK5_P1_26;			//set K5  on
			DelayMS_(SWITCH_DELAY_TIME);
			break;
#endif
/////////////////////////////////////////////////////////////////////
		default:
			Uart0SendString("Cancel unsupported case.");
			break;
	}
	sprintf(dbuffer,"PreForceDKxState() Changes DKx state to 0x%x",StateValue); 
	Uart0SendString(dbuffer);	
}

///////////////////////////////////////////////////////////////////
void PreToLightOn(void)
{
int32 databuff;
int32 V_AdjustStep;
char  dbuffer[100];

////
		V_AdjustStep=(CurInput_UU*TransferKKK)/2200;	// standard Voltage = 220V, *10V
////
		Uart0SendEnter();											// hint the current time firstly
		sprintf(dbuffer,"[!!] Current time: %4d.%2d.%2d.%2d.%2d.%2d",CurrentTime.xYEAR,CurrentTime.xMONTH,
		CurrentTime.xDOM,CurrentTime.xHOUR,CurrentTime.xMIN,CurrentTime.xSEC);	Uart0SendString(dbuffer);

		sprintf(dbuffer,"Preset DK relay: Input(V)=%4d, Output(V)=%4d, Target(V)=%4d, V_Step(V)=%4d",
										  CurInput_UU,  CurOutput_U,   TargetVoltage, V_AdjustStep);
		Uart0SendString(dbuffer);
		Uart0SendString("Open loop Mode.");

////
#ifdef U_MAIN_ADJUST_DECREASE
		databuff=(int16)CurInput_UU-(int16)TargetVoltage;			// adjust voltage in decreasing mode
		if(databuff>0) databuff += (V_AdjustStep>>1);
#else
		databuff=(int16)TargetVoltage-(int16)CurInput_UU;			// adjust voltage in increasing mode
		if(databuff<0) databuff -= (V_AdjustStep>>1);
#endif

////// decreasing the output voltage
		if(databuff>=0){	// if positive
			if(databuff>=V_AdjustStep){
				databuff=(databuff+(V_AdjustStep>>1)) / V_AdjustStep;

				if(databuff>(Minus_vMAX-Minus_00V0)){	// if Voltage too high, force -37.5V
					PreForceDKxState(Minus_vMAX);		// this is the max negative adjust
				}else{									// if TransferKKK< xxxx < Minus_37V5, adjust voltage.
					PreForceDKxState((uint16)databuff+Minus_00V0);
				}
			}else{	//databuff < TransferKKK
				PreForceDKxState(Minus_00V0);				//this is the max negative adjust
			}
		}
////// increasing the output voltage
		else{						// if negative
			databuff = -databuff;	// change to positive firstly.
			if(databuff >= V_AdjustStep){
				databuff=(databuff+(V_AdjustStep>>1)) / V_AdjustStep;

				if(databuff>(Plus_vMAX-Plus_00V0)){
					PreForceDKxState(Plus_vMAX);			//this is the max positive adjust		
				}else{				// if TransferKKK< xxxx < Plus_10V0, adjust voltage.
					PreForceDKxState((uint16)databuff+Plus_00V0);
				}
			}else{	//databuff < TransferKKK
				PreForceDKxState(Plus_00V0);
			}
		}
}

//////////////////////////////////////////////////////////////////////
void OutputPinTest(void)
{
//
	Uart0SendString("execute:OutputPinTest()");	
	RF_SendString  ("execute:OutputPinTest()");

//
	IO0SET = DQ__P0_07;
	IO1SET = DK__P1_24;
	IO0SET = DK1_P0_06;
	IO0SET = DK2_P0_05;
	IO1SET = DK3_P1_25;
	IO0SET = DK4_P0_04;
	IO1SET = DK5_P1_26;
	IO1SET = DT__P1_31;
	IO1SET = DH__P1_16;
	IO0SET = DL__P0_28;
	IO1SET = DL1_P1_17;
	IO0SET = DL2_P0_27;

//
	IO0CLR = DQ__P0_07;		DelayMS_(200);
	IO0SET = DQ__P0_07;
	
	IO1CLR = DK__P1_24;		DelayMS_(200);
	IO1SET = DK__P1_24;
	
	IO0CLR = DK1_P0_06;		DelayMS_(200);
	IO0SET = DK1_P0_06;
	
	IO0CLR = DK2_P0_05;		DelayMS_(200);
	IO0SET = DK2_P0_05;
	
	IO1CLR = DK3_P1_25;		DelayMS_(200);
	IO1SET = DK3_P1_25;
	
	IO0CLR = DK4_P0_04;		DelayMS_(200);
	IO0SET = DK4_P0_04;
	
	IO1CLR = DK5_P1_26;		DelayMS_(200);
	IO1SET = DK5_P1_26;
	
	IO1CLR = DT__P1_31;		DelayMS_(200);
	IO1SET = DT__P1_31;
	
	IO1CLR = DH__P1_16;		DelayMS_(200);
	IO1SET = DH__P1_16;
	
	IO0CLR = DL__P0_28;		DelayMS_(200);
	IO0SET = DL__P0_28;
	
	IO1CLR = DL1_P1_17;		DelayMS_(200);
	IO1SET = DL1_P1_17;

	IO0CLR = DL2_P0_27;		DelayMS_(200);
	IO0SET = DL2_P0_27;

	TestADC();		//adc test.
}

//////////////////////////////////////////////////////////////////////
void InputPinTest(void)
{
//
	if((IO0PIN&VINT1_P0_26)&&(IO0PIN&VINT2_P0_25)&&
	   (IO1PIN&VINT3_P1_18)&&(IO1PIN&VINT4_P1_19)){

		IO0SET = DL2_P0_27;	//turn on led display on the test platform
	}else{
		IO0CLR = DL2_P0_27;	//turn off led display on the test platform
	}
}

//////////////////////////////////////////////////////////////////////
// end of file

⌨️ 快捷键说明

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