📄 key.c
字号:
if(vDrMDownTC == 0)
{
bDrMED = 0;
fDrMFall();
vDrMDownTC = 1;
fEnDistinguishDriverMotorType();
}
else
{ bDigDrWinEn = 1;
if(vDrMDownTC++ > mMaxWinMoveTime)
{
vDrMDownTC--;
fDrMStop();
}
}
return;
}
//rise
if ( !bDrMDown && !bDrMUp && bDrMAutoUp && !bDrLock || bDrMUp && !bDrLock )
{
if(bDrMED & bDrMDR)
return;
bDrMStop = 0;
// fDiagDrWin();
if(vDrMUpTC == 0)
{
bDrMED = 0;
fDrMRise();
vDrMUpTC = 1;
fEnDistinguishDriverMotorType();
}
else
{ bDigDrWinEn = 1;
if(vDrMUpTC++ > mMaxWinMoveTime)
{
vDrMUpTC--;
fDrMStop();
}
}
return;
}
//stop
fDrMStop();
bDrMAutoUp = 0;
bDrMAutoDown = 0;
}
void fFPWinProcess(void)
{
if(!bIGNIsOk||bBatterIsHightVolt||bBatteryIsLowVolt||bEnFPLRTC)
{
bFPMDown = 0;
bFPMUp = 0;
bFPMAutoDown = 0;
bDrCtrFPMDown = 0;
bDrCtrFPMUp = 0;
bDrCtrFPMAutoDown = 0;
}
if(bFPMDown)
{ if(vFPKeyPreDownTC++ > mAutoThresholdTime)
{
vFPKeyPreDownTC--;
bFPMAutoDown = 1; //autoDown
bFPConPressDown = 1;
}
}
if(bDrCtrFPMDown)
{ if(vDrCtrFPKeyPreDownTC++ > mAutoThresholdTime)
{
vDrCtrFPKeyPreDownTC--;
bDrCtrFPMAutoDown = 1; //autoDown
bDrCtrFPConPressDown = 1;
}
}
//driver auto down without pressing the key && passenger press the key = stop,
if( !bDrCtrFPMDown && !bDrCtrFPMUp && bDrCtrFPMAutoDown && (bFPMUp || bFPMDown) )
bFPLock = 1;
//passenger auto down, then passenger press the key = stop,
if( bFPMAutoDown && ((bFPMDown && !bFPConPressDown ) || bFPMUp) && !bDrCtrFPMDown && !bDrCtrFPMUp )
bFPLock = 1;
//passenger auto down without pressing the key && drver press key = stop,
if( !bFPMDown && !bFPMUp && bFPMAutoDown && (bDrCtrFPMUp || bDrCtrFPMDown) )
bDrCtrFPLock = 1;
//driver auto down, then driver press the key = stop,
if( bDrCtrFPMAutoDown && ((bDrCtrFPMDown && !bDrCtrFPConPressDown ) || bDrCtrFPMUp) && !bFPMDown && !bFPMUp )
bDrCtrFPLock = 1;
if (!bFPMDown && !bFPMUp)
bFPLock = 0;
if (!bDrCtrFPMDown && !bDrCtrFPMUp)
bDrCtrFPLock = 0;
//fall
if ( (!bDrCtrFPMDown && bDrCtrFPMAutoDown && !bFPLock && !bDrCtrFPLock && !bFPMUp ) ||
( bDrCtrFPMDown && !bFPLock && !bDrCtrFPLock ) ||
(( bFPMAutoDown ||bFPMDown) && !bFPLock && !bDrCtrFPLock && !bDrCtrFPMUp )
)
{
if(bFPMED & !bFPMDR)
return;
bFPMStop = 0;
if(vFPMDownTC == 0)
{
bFPMED = 0;
fFPPMFall();
vFPMDownTC = 1;
}
else
{ bDigFPWinEn = 1;
if(vFPMDownTC++ > mMaxWinMoveTime)
{
vFPMDownTC--;
fFPPMStop();
}
}
return;
}
//rise
if((bDrCtrFPMUp || bFPMUp ) && !bFPLock && !bDrCtrFPLock && !bFPMAutoDown && !bFPMDown)
{
if(bFPMED & bFPMDR)
return;
bFPMStop = 0;
// fDiagDrWin();
if(vFPMUpTC == 0)
{ bFPMED = 0;
fFPPMRise();
vFPMUpTC = 1;
}
else
{ bDigFPWinEn = 1;
if(vFPMUpTC++ > mMaxWinMoveTime)
{
vFPMUpTC--;
fFPPMStop();
}
}
return;
}
//stop
fFPPMStop();
bFPMAutoDown = 0;
bDrCtrFPMAutoDown = 0;
}
void fRLWinProcess(void)
{
if(!bIGNIsOk||bBatterIsHightVolt||bBatteryIsLowVolt||bEnRLLRTC)
{
bRLMDown = 0;
bRLMUp = 0;
bRLMAutoDown = 0;
bDrCtrRLMDown = 0;
bDrCtrRLMUp = 0;
bDrCtrRLMAutoDown = 0;
}
if(bIHBisEnable)
{
bRLMDown = 0;
bRLMUp = 0;
bRLMAutoDown = 0;
}
if(bRLMDown)
{ if(vRLKeyPreDownTC++ > mAutoThresholdTime)
{
vRLKeyPreDownTC--;
bRLMAutoDown = 1; //autoDown
bRLConPressDown = 1;
}
}
if(bDrCtrRLMDown)
{ if(vDrCtrRLKeyPreDownTC++ > mAutoThresholdTime)
{
vDrCtrRLKeyPreDownTC--;
bDrCtrRLMAutoDown = 1; //autoDown
bDrCtrRLConPressDown = 1;
}
}
//driver auto down without pressing the key && passenger press the key = stop,
if( !bDrCtrRLMDown && !bDrCtrRLMUp && bDrCtrRLMAutoDown && (bRLMUp || bRLMDown) )
bRLLock = 1;
//passenger auto down, then passenger press the key = stop,
if( bRLMAutoDown && ((bRLMDown && !bRLConPressDown ) || bRLMUp) && !bDrCtrRLMDown && !bDrCtrRLMUp )
bRLLock = 1;
//passenger auto down without pressing the key && drver press key = stop,
if( !bRLMDown && !bRLMUp && bRLMAutoDown && (bDrCtrRLMUp || bDrCtrRLMDown) )
bDrCtrRLLock = 1;
//driver auto down, then driver press the key = stop,
if( bDrCtrRLMAutoDown && ((bDrCtrRLMDown && !bDrCtrRLConPressDown ) || bDrCtrRLMUp) && !bRLMDown && !bRLMUp )
bDrCtrRLLock = 1;
if (!bRLMDown && !bRLMUp)
bRLLock = 0;
if (!bDrCtrRLMDown && !bDrCtrRLMUp)
bDrCtrRLLock = 0;
//fall
if ( (!bDrCtrRLMDown && bDrCtrRLMAutoDown && !bRLLock && !bDrCtrRLLock && !bRLMUp ) ||
( bDrCtrRLMDown && !bRLLock && !bDrCtrRLLock ) ||
(( bRLMAutoDown ||bRLMDown) && !bRLLock && !bDrCtrRLLock && !bDrCtrRLMUp )
)
{
if(bRLMED & !bRLMDR)
return;
bRLMStop = 0;
if(vRLMDownTC == 0)
{
bRLMED = 0;
fRLPMFall();
vRLMDownTC = 1;
}
else
{ bDigRLWinEn = 1;
if(vRLMDownTC++ > mMaxWinMoveTime)
{
vRLMDownTC--;
fRLPMStop();
}
}
return;
}
//rise
if((bDrCtrRLMUp || bRLMUp ) && !bRLLock && !bDrCtrRLLock && !bRLMAutoDown && !bRLMDown)
{
if(bRLMED & bRLMDR)
return;
bRLMStop = 0;
// fDiagDrWin();
if(vRLMUpTC == 0)
{
bRLMED = 0;
fRLPMRise();
vRLMUpTC = 1;
}
else
{ bDigRLWinEn = 1;
if(vRLMUpTC++ > mMaxWinMoveTime)
{
vRLMUpTC--;
fRLPMStop();
}
}
return;
}
//stop
fRLPMStop();
bRLMAutoDown = 0;
bDrCtrRLMAutoDown = 0;
}
void fRRWinProcess(void)
{
if(!bIGNIsOk||bBatterIsHightVolt||bBatteryIsLowVolt||bEnRRLRTC)
{
bRRMDown = 0;
bRRMUp = 0;
bRRMAutoDown = 0;
bDrCtrRRMDown = 0;
bDrCtrRRMUp = 0;
bDrCtrRRMAutoDown = 0;
}
if(bIHBisEnable)
{
bRRMDown = 0;
bRRMUp = 0;
bRRMAutoDown = 0;
}
if(bRRMDown)
{ if(vRRKeyPreDownTC++ > mAutoThresholdTime)
{
vRRKeyPreDownTC--;
bRRMAutoDown = 1; //autoDown
bRRConPressDown = 1;
}
}
if(bDrCtrRRMDown)
{ if(vDrCtrRRKeyPreDownTC++ > mAutoThresholdTime)
{
vDrCtrRRKeyPreDownTC--;
bDrCtrRRMAutoDown = 1; //autoDown
bDrCtrRRConPressDown = 1;
}
}
//driver auto down without pressing the key && passenger press the key = stop,
if( !bDrCtrRRMDown && !bDrCtrRRMUp && bDrCtrRRMAutoDown && (bRRMUp || bRRMDown) )
bRRLock = 1;
//passenger auto down, then passenger press the key = stop,
if( bRRMAutoDown && ((bRRMDown && !bRRConPressDown ) || bRRMUp) && !bDrCtrRRMDown && !bDrCtrRRMUp )
bRRLock = 1;
//passenger auto down without pressing the key && drver press key = stop,
if( !bRRMDown && !bRRMUp && bRRMAutoDown && (bDrCtrRRMUp || bDrCtrRRMDown) )
bDrCtrRRLock = 1;
//driver auto down, then driver press the key = stop,
if( bDrCtrRRMAutoDown && ((bDrCtrRRMDown && !bDrCtrRRConPressDown ) || bDrCtrRRMUp) && !bRRMDown && !bRRMUp )
bDrCtrRRLock = 1;
if (!bRRMDown && !bRRMUp)
bRRLock = 0;
if (!bDrCtrRRMDown && !bDrCtrRRMUp)
bDrCtrRRLock = 0;
//fall
if ( (!bDrCtrRRMDown && bDrCtrRRMAutoDown && !bRRLock && !bDrCtrRRLock && !bRRMUp ) ||
( bDrCtrRRMDown && !bRRLock && !bDrCtrRRLock ) ||
(( bRRMAutoDown ||bRRMDown) && !bRRLock && !bDrCtrRRLock && !bDrCtrRRMUp )
)
{
if(bRRMED & !bRRMDR)
return;
bRRMStop = 0;
if(vRRMDownTC == 0)
{ bRRMED = 0;
fRRPMFall();
vRRMDownTC = 1;
}
else
{ bDigRRWinEn = 1;
if(vRRMDownTC++ > mMaxWinMoveTime)
{
vRRMDownTC--;
fRRPMStop();
}
}
return;
}
//rise
if((bDrCtrRRMUp || bRRMUp ) && !bRRLock && !bDrCtrRRLock && !bRRMAutoDown && !bRRMDown)
{
if(bRRMED & bRRMDR)
return;
bRRMStop = 0;
// fDiagDrWin();
if(vRRMUpTC == 0)
{ bRRMED = 0;
fRRPMRise();
vRRMUpTC = 1;
}
else
{ bDigRRWinEn = 1;
if(vRRMUpTC++ > mMaxWinMoveTime)
{
vRRMUpTC--;
fRRPMStop();
}
}
return;
}
//stop
fRRPMStop();
bRRMAutoDown = 0;
bDrCtrRRMAutoDown = 0;
}
void fSCanInhibitedInput(void)
{
if(IHB)
{
if (vIHBKeyBouncedTC++ > mJitter)
{
bInhibitedPressed = 0;
vIHBKeyBouncedTC--;
vIHBKeyPressedTC = 0;
}
}
else
{
if (vIHBKeyPressedTC++ > mJitter+5)
{
if(vIHBKeyPressedTC == mJitter+7)
{
vIHBKeyPressedTC +=4;
bInhibitedPressed = 1;
}
vIHBKeyPressedTC--;
vIHBKeyBouncedTC = 0;
}
}
}
void fIHBKeyProcess(void)
{
if(bInhibitedPressed)
{
bInhibitedPressed = 0;
bIHBisEnable = 1^bIHBisEnable;
if(bIHBisEnable)
TurnOnIHBLight;
else
TurnOffIHBLight;
}
}
void fGetPowerVolt(void)
{
unsigned char vPowerVolt;
if(bEnSvsPower)
{
fItlADC();
vPowerVolt = fADConverter(AD_Power);
vHigtVoltSeries = vHigtVoltSeries<<1;
vLowVoltSeries = vLowVoltSeries<<1;
bBatterIsHightVolt = 0;
bBatteryIsLowVolt= 0;
if( vPowerVolt > mHighVolt )
if( ++vHigtVoltSeries == 0xff )
bBatterIsHightVolt = 1;
if( vPowerVolt < mLowVolt )
if( ++vLowVoltSeries == 0xff)
bBatteryIsLowVolt = 1;
}
}
void fSelectHC4051Channel(unsigned char ChannelNum)
{
ChannelNum &= 0x07;
HC4051_A = ChannelNum;
HC4051_B = ChannelNum>>1;
HC4051_C = ChannelNum>>2;
fDelay(200);
}
unsigned char fADConverter(unsigned char ChannelNum)
{
unsigned char ad_result = 0;
ChannelNum &= 0x07;
ChannelNum <<=2;
ADCON0 |= (ChannelNum + 0x01); //ADON
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
//sample time
GODONE = 1;
while(GODONE);
ad_result = ADRESH;
return(ad_result);
}
void fDelay(unsigned int us)
{
while (us--);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -