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