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