📄 switchinput.c
字号:
{//set error flag & add err counter
Swt_nCH4ErrCntr++;
if(Swt_nCH4ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH4Err |= SWT_STATE_ERR;
Swt_stCH4 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH4_mp0 = 1;
Swt_tiCH4 = LIN_GetCurrentTime();
Swt_stCH4Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH4, LIN_GetCurrentTime(),Swt_tiCH4DebounceH_C))
{
Swt_nCH4ErrCntr =0;
Swt_stCH4Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN4_HS
Swt_stCH4 = SWT_STATE_ON;
#else
Swt_stCH4 = SWT_STATE_OFF;
#endif
//Swt_stCH4 = Swt_stCH4_mp0;
//LIN_MsgStatus[7] |= LIN_MSG_UPDATED;
}
}
else
{
if(Swt_stCH4_mp0 == 1)
{
Swt_nCH4ErrCntr++;
if(Swt_nCH4ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH4Err |= SWT_STATE_ERR;
Swt_stCH4 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH4_mp0 = 0;
Swt_tiCH4 = LIN_GetCurrentTime();
Swt_stCH4Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH4, LIN_GetCurrentTime(),Swt_tiCH4Debounce_C))
{
Swt_nCH4ErrCntr =0;
Swt_stCH4Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN4_HS
Swt_stCH4 = SWT_STATE_OFF;
#else
Swt_stCH4 = SWT_STATE_ON;
#endif
//Swt_stCH4 = Swt_stCH4_mp0;
//LIN_MsgStatus[7] |= LIN_MSG_UPDATED;
}
}
}
//--------------------------------------------------------------
else
{
if(Swt_stTemp & SWT_IN4_INDEX)
{
if(Swt_stCH4_mp0 == 0)
{
Swt_stCH4_mp0 = 1;
Swt_tiCH4 = LIN_GetCurrentTime();
Swt_stCH4Err |= SWT_STATE_DEBOUNCE;
}
}
else
{
if(Swt_stCH4_mp0 == 1)
{
Swt_stCH4_mp0 = 0;
Swt_tiCH4 = LIN_GetCurrentTime();
Swt_stCH4Err |= SWT_STATE_DEBOUNCE;
}
}
}
#endif
#if SWT_IN5_EN == 1
if(Swt_stCH5Err == SWT_STATE_UNKNOWN)
{
if(Swt_stTemp & SWT_IN5_INDEX) Swt_stCH5_mp0 = 1;
else Swt_stCH5_mp0 = 0;
Swt_tiCH5 = LIN_GetCurrentTime();
Swt_stCH5Err |= SWT_STATE_DEBOUNCE;
Swt_stCH5Err &= ~SWT_STATE_UNKNOWN;
}
//--------------------------------------------------------------
else if((Swt_stCH5Err & SWT_STATE_DEBOUNCE) == SWT_STATE_DEBOUNCE)
{
if(Swt_stTemp & SWT_IN5_INDEX)
{
if(Swt_stCH5_mp0 == 0)
{//set error flag & add err counter
Swt_nCH5ErrCntr++;
if(Swt_nCH5ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH5Err |= SWT_STATE_ERR;
Swt_stCH5 = SWT_STATE_ERR;
//LIN_MsgStatus[7]= LIN_MSG_UPDATED;
}
Swt_stCH5_mp0 = 1;
Swt_tiCH5 = LIN_GetCurrentTime();
Swt_stCH5Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH5, LIN_GetCurrentTime(),Swt_tiCH5Debounce_C))
{
Swt_nCH5ErrCntr =0;
Swt_stCH5Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN5_HS
Swt_stCH5 = SWT_STATE_ON;
#else
Swt_stCH5 = SWT_STATE_OFF;
#endif
//Swt_stCH5 = Swt_stCH5_mp0;
//LIN_MsgStatus[7] |= LIN_MSG_UPDATED;
}
}
else
{
if(Swt_stCH5_mp0 == 1)
{
Swt_nCH5ErrCntr++;
if(Swt_nCH5ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH5Err |= SWT_STATE_ERR;
Swt_stCH5 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH5_mp0 = 0;
Swt_tiCH5 = LIN_GetCurrentTime();
Swt_stCH5Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH5, LIN_GetCurrentTime(),Swt_tiCH5Debounce_C))
{
Swt_nCH5ErrCntr =0;
Swt_stCH5Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN5_HS
Swt_stCH5 = SWT_STATE_OFF;
#else
Swt_stCH5 = SWT_STATE_ON;
#endif
//Swt_stCH5 = Swt_stCH5_mp0;
//LIN_MsgStatus[7] |= LIN_MSG_UPDATED;
}
}
}
//--------------------------------------------------------------
else
{
if(Swt_stTemp & SWT_IN5_INDEX)
{
if(Swt_stCH5_mp0 == 0)
{
Swt_stCH5_mp0 = 1;
Swt_tiCH5 = LIN_GetCurrentTime();
Swt_stCH5Err |= SWT_STATE_DEBOUNCE;
}
}
else
{
if(Swt_stCH5_mp0 == 1)
{
Swt_stCH5_mp0 = 0;
Swt_tiCH5 = LIN_GetCurrentTime();
Swt_stCH5Err |= SWT_STATE_DEBOUNCE;
}
}
}
#endif
#if SWT_IN6_EN == 1
if(Swt_stCH6Err == SWT_STATE_UNKNOWN)
{
if(Swt_stTemp & SWT_IN6_INDEX) Swt_stCH6_mp0 = 1;
else Swt_stCH6_mp0 = 0;
Swt_tiCH6 = LIN_GetCurrentTime();
Swt_stCH6Err |= SWT_STATE_DEBOUNCE;
Swt_stCH6Err &= ~SWT_STATE_UNKNOWN;
}
else if((Swt_stCH6Err & SWT_STATE_DEBOUNCE) == SWT_STATE_DEBOUNCE)
{
if(Swt_stTemp & SWT_IN6_INDEX)
{
if(Swt_stCH6_mp0 == 0)
{//set error flag & add err counter
Swt_nCH6ErrCntr++;
if(Swt_nCH6ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH6Err |= SWT_STATE_ERR;
Swt_stCH6 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH6_mp0 = 1;
Swt_tiCH6 = LIN_GetCurrentTime();
Swt_stCH6Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH6, LIN_GetCurrentTime(),Swt_tiCH6Debounce_C))
{
Swt_nCH6ErrCntr =0;
Swt_stCH6Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN7_HS
Swt_stCH6 = SWT_STATE_ON;
//VirtualWiper();
#else
Swt_stCH6 = SWT_STATE_OFF;
#endif
//Swt_stCH6 = Swt_stCH6_mp0;
}
}
else
{
if(Swt_stCH6_mp0 == 1)
{
Swt_nCH6ErrCntr++;
if(Swt_nCH6ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH6Err |= SWT_STATE_ERR;
Swt_stCH6 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH6_mp0 = 0;
Swt_tiCH6 = LIN_GetCurrentTime();
Swt_stCH6Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH6, LIN_GetCurrentTime(),Swt_tiCH6Debounce_C))
{
Swt_nCH6ErrCntr =0;
Swt_stCH6Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN7_HS
Swt_stCH6 = SWT_STATE_OFF;
#else
Swt_stCH6 = SWT_STATE_ON;
//VirtualWiper();
#endif
}
}
}
else
{
if(Swt_stTemp & SWT_IN6_INDEX)
{
if(Swt_stCH6_mp0 == 0)
{
Swt_stCH6_mp0 = 1;
Swt_tiCH6 = LIN_GetCurrentTime();
Swt_stCH6Err |= SWT_STATE_DEBOUNCE;
}
}
else
{
if(Swt_stCH6_mp0 == 1)
{
Swt_stCH6_mp0 = 0;
Swt_tiCH6 = LIN_GetCurrentTime();
Swt_stCH6Err |= SWT_STATE_DEBOUNCE;
}
}
}
#endif
#if SWT_IN7_EN == 1
if(Swt_stCH7Err == SWT_STATE_UNKNOWN)
{
if(Swt_stTemp & SWT_IN7_INDEX) Swt_stCH7_mp0 = 1;
else Swt_stCH7_mp0 = 0;
Swt_tiCH7 = LIN_GetCurrentTime();
Swt_stCH7Err |= SWT_STATE_DEBOUNCE;
Swt_stCH7Err &= ~SWT_STATE_UNKNOWN;
}
else if((Swt_stCH7Err & SWT_STATE_DEBOUNCE) == SWT_STATE_DEBOUNCE)
{
if(Swt_stTemp & SWT_IN7_INDEX)
{
if(Swt_stCH7_mp0 == 0)
{//set error flag & add err counter
Swt_nCH7ErrCntr++;
if(Swt_nCH7ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH7Err |= SWT_STATE_ERR;
Swt_stCH7 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH7_mp0 = 1;
Swt_tiCH7 = LIN_GetCurrentTime();
Swt_stCH7Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH7, LIN_GetCurrentTime(),Swt_tiCH7Debounce_C))
{
Swt_nCH7ErrCntr =0;
Swt_stCH7Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN7_HS
Swt_stCH7 = SWT_STATE_ON;
//VirtualWiper();
#else
Swt_stCH7 = SWT_STATE_OFF;
#endif
//Swt_stCH7 = Swt_stCH7_mp0;
}
}
else
{
if(Swt_stCH7_mp0 == 1)
{
Swt_nCH7ErrCntr++;
if(Swt_nCH7ErrCntr > SWT_ERR_MAX_COUNT)
{
Swt_stCH7Err |= SWT_STATE_ERR;
Swt_stCH7 = SWT_STATE_ERR;
//LIN_MsgStatus[7]|= LIN_MSG_UPDATED;
}
Swt_stCH7_mp0 = 0;
Swt_tiCH7 = LIN_GetCurrentTime();
Swt_stCH7Err |= SWT_STATE_DEBOUNCE;
}
else if(LIN_CheckTimeOut(Swt_tiCH7, LIN_GetCurrentTime(),Swt_tiCH7Debounce_C))
{
Swt_nCH7ErrCntr =0;
Swt_stCH7Err &= ~(SWT_STATE_DEBOUNCE | SWT_STATE_ERR);
#if SWT_IN7_HS
Swt_stCH7 = SWT_STATE_OFF;
#else
Swt_stCH7 = SWT_STATE_ON;
//VirtualWiper();
#endif
}
}
}
else
{
if(Swt_stTemp & SWT_IN7_INDEX)
{
if(Swt_stCH7_mp0 == 0)
{
Swt_stCH7_mp0 = 1;
Swt_tiCH7 = LIN_GetCurrentTime();
Swt_stCH7Err |= SWT_STATE_DEBOUNCE;
}
}
else
{
if(Swt_stCH7_mp0 == 1)
{
Swt_stCH7_mp0 = 0;
Swt_tiCH7 = LIN_GetCurrentTime();
Swt_stCH7Err |= SWT_STATE_DEBOUNCE;
}
}
}
#endif
}
/************************************
*Function Name: Swt_Init
*Parameter: NONE
*Orignator: Wang junpeng
*Date: 14th, June, 2005
*Discription: Initialize CmbSwt Status
*
**************************************/
void Swt_Init(void)
{
SWT_IN_MASK = 0;
Swt_stTemp = SWT_IN_DATA;
Swt_stTemp = 0;
#if SWT_IN0_EN == 1
Swt_stCH0 = 0xff;
Swt_stCH0_mp0 = 0xff;
Swt_tiCH0 = 0;
Swt_nCH0ErrCntr = 0;
Swt_stCH0Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN1_EN == 1
Swt_stCH1 = 0xff;
Swt_stCH1_mp0 = 0xff;
Swt_tiCH1 = 0;
Swt_nCH1ErrCntr = 0;
Swt_stCH1Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN2_EN == 1
Swt_stCH2 = 0xff;
Swt_stCH2_mp0 = 0xff;
Swt_tiCH2 = 0;
Swt_nCH2ErrCntr = 0;
Swt_stCH2Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN3_EN == 1
Swt_stCH3 = 0xff;
Swt_stCH3_mp0 = 0xff;
Swt_tiCH3 = 0;
Swt_nCH3ErrCntr = 0;
Swt_stCH3Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN4_EN == 1
Swt_stCH4 = 0xff;
Swt_stCH4_mp0 = 0xff;
Swt_tiCH4 = 0;
Swt_nCH4ErrCntr = 0;
Swt_stCH4Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN5_EN == 1
Swt_stCH5 = 0xff;
Swt_stCH5_mp0 = 0xff;
Swt_tiCH5 = 0;
Swt_nCH5ErrCntr = 0;
Swt_stCH5Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN6_EN == 1
Swt_stCH6 = 0xff;
Swt_stCH6_mp0 = 0xff;
Swt_tiCH6 = 0;
Swt_nCH6ErrCntr = 0;
Swt_stCH6Err = SWT_STATE_UNKNOWN;
#endif
#if SWT_IN7_EN == 1
Swt_stCH7 = 0xff;
Swt_stCH7_mp0 = 0xff;
Swt_tiCH7 = 0;
Swt_nCH7ErrCntr = 0;
Swt_stCH7Err = SWT_STATE_UNKNOWN;
#endif
}
void Swt_GetKeyPos(void)
{
//CMD_KeyPos = Swt_stKeyACC | Swt_stKeyON | Swt_stKeyStrt;
}
unsigned char LIN_CheckTimeOut(unsigned int wTimeStart, unsigned int wTimeNow, unsigned int wTimeOut)
/* END_FCTCALL *************************************************************/
{
#define wActivateCounter ((unsigned int)(wTimeOut+wTimeStart))
if (wActivateCounter > wTimeStart)
{
if ((wTimeNow >= wActivateCounter) ||
(wTimeNow < wTimeStart))
{
return TRUE;
}
}
else if ((wTimeNow >= wActivateCounter) &&
(wTimeNow < wTimeStart))
{
return TRUE;
}
return FALSE;
}
unsigned int LIN_GetCurrentTime(void)
{
return LIN_CurrentTime;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -