📄 drv_lampv0.c.bak
字号:
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 + -