📄 switchinput.h
字号:
/******************************************************************************************
* BECU Switch Module of LIN system
*Orginator: Wang junpeng
*Date: 14th, June, 2005
*Basic Function: Sample BECU switch signal, and transfered through LIN Bus.
*Integrated with LINDriver_Master:
*
*
*
*
*
*
********************************************************************************************
*/
#ifndef __SWTIN_H__
#define __SWTIN_H__
#ifdef SWITCHIN_GLOBALS
#define SWTIN_EXT
#else
#define SWTIN_EXT extern
#endif
//SWITCH INPUT Channel Enable selection
#define SWT_IN0_EN 1u
#define SWT_IN1_EN 1u
#define SWT_IN2_EN 0u
#define SWT_IN3_EN 1u
#define SWT_IN4_EN 1u
#define SWT_IN5_EN 0u
#define SWT_IN6_EN 1u
#define SWT_IN7_EN 1u
//SWITCH INPUT Channel index
#define SWT_IN0_INDEX SWT_IN0_EN
#define SWT_IN1_INDEX (SWT_IN1_EN << 1)
#define SWT_IN2_INDEX (SWT_IN2_EN << 2)
#define SWT_IN3_INDEX (SWT_IN3_EN << 3)
#define SWT_IN4_INDEX (SWT_IN4_EN << 4)
#define SWT_IN5_INDEX (SWT_IN5_EN << 5)
#define SWT_IN6_INDEX (SWT_IN6_EN << 6)
#define SWT_IN7_INDEX (SWT_IN7_EN << 7)
//Switch input port select
#define SWT_IN0_CH PTH_PTH0
#define SWT_IN1_CH PTH_PTH1
#define SWT_IN2_CH PTH_PTH2
#define SWT_IN3_CH PTH_PTH3
#define SWT_IN4_CH PTH_PTH4
#define SWT_IN5_CH PTH_PTH5
#define SWT_IN6_CH PTH_PTH6
#define SWT_IN7_CH PTH_PTH7
#define SWT_IN_DATA PTH
#define SWT_IN_MASK DDRH
//Default: CHx used as high side input switch
#define SWT_IN0_HS 1u
#define SWT_IN1_HS 2u
#define SWT_IN2_HS 4u//0u
#define SWT_IN3_HS 8u
#define SWT_IN4_HS 0x10u//0u
#define SWT_IN5_HS 0x20u//0u
#define SWT_IN6_HS 0x40u//0u
#define SWT_IN7_HS 0x80u//0u
#define SWT_IN0_ON 1u
#define SWT_IN1_ON 1u
#define SWT_IN2_ON 1u
#define SWT_IN3_ON 0u
#define SWT_IN4_ON 0u
#define SWT_IN5_ON 0u
#define SWT_IN6_ON 0u
#define SWT_IN7_ON 0u
#define SWT_STATE_ON 1u
#define SWT_STATE_OFF 0u
#define SWT_STATE_OK 1u
#define SWT_STATE_ERR 2u
#define SWT_STATE_DEBOUNCE 4u
#define SWT_STATE_UNKNOWN 0x10u
#define SWT_ERR_MAX 3u
#define KEY_POS_OFF 0u
#define KEY_POS_ACC 1u
#define KEY_POS_ON 2u
#define KEY_POS_START 3u
#define KEY_POS_UNKNOWN 7u
#define SWT_ERR_MAX_COUNT 10u//100
SWTIN_EXT const unsigned char Swt_stHS_Ena_C;
//SWTIN_EXT unsigned char Swt_nErrCntr;
SWTIN_EXT unsigned char Swt_stTemp;
//Hardware config register redifinations
#if SWT_IN0_EN == 1
#define SWT_IN0_Mask DDRH_DDRH0
SWTIN_EXT unsigned char Swt_stCH0;
SWTIN_EXT unsigned char Swt_stCH0_mp0;
SWTIN_EXT const unsigned int Swt_tiCH0Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH0;
SWTIN_EXT unsigned char Swt_nCH0ErrCntr;
SWTIN_EXT unsigned char Swt_stCH0Err;
#endif
#if SWT_IN1_EN == 1
#define SWT_IN1_Mask DDRH_DDRH1
SWTIN_EXT unsigned char Swt_stCH1;
SWTIN_EXT unsigned char Swt_stCH1_mp0;
SWTIN_EXT const unsigned int Swt_tiCH1Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH1;
SWTIN_EXT unsigned char Swt_nCH1ErrCntr;
SWTIN_EXT unsigned char Swt_stCH1Err;
#endif
#if SWT_IN2_EN == 1
#define SWT_IN2_Mask DDRH_DDRH2
SWTIN_EXT unsigned char Swt_stCH2;
SWTIN_EXT unsigned char Swt_stCH2_mp0;
SWTIN_EXT const unsigned int Swt_tiCH2Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH2;
SWTIN_EXT unsigned char Swt_nCH2ErrCntr;
SWTIN_EXT unsigned char Swt_stCH2Err;
#endif
#if SWT_IN3_EN == 1
#define SWT_IN3_Mask DDRH_DDRH3
SWTIN_EXT unsigned char Swt_stCH3;
SWTIN_EXT unsigned char Swt_stCH3_mp0;
SWTIN_EXT const unsigned int Swt_tiCH3Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH3;
SWTIN_EXT unsigned char Swt_nCH3ErrCntr;
SWTIN_EXT unsigned char Swt_stCH3Err;
#endif
#if SWT_IN4_EN == 1
#define SWT_IN4_Mask DDRH_DDRH4
SWTIN_EXT unsigned char Swt_stCH4;
SWTIN_EXT unsigned char Swt_stCH4_mp0;
SWTIN_EXT const unsigned int Swt_tiCH4Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH4;
SWTIN_EXT unsigned char Swt_nCH4ErrCntr;
SWTIN_EXT unsigned char Swt_stCH4Err;
#endif
#if SWT_IN5_EN == 1
#define SWT_IN5_Mask DDRH_DDRH5
SWTIN_EXT unsigned char Swt_stCH5;
SWTIN_EXT unsigned char Swt_stCH5_mp0;
SWTIN_EXT const unsigned int Swt_tiCH5Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH5;
SWTIN_EXT unsigned char Swt_nCH5ErrCntr;
SWTIN_EXT unsigned char Swt_stCH5Err;
#endif
#if SWT_IN6_EN == 1
#define SWT_IN6_Mask DDRH_DDRH6
SWTIN_EXT unsigned char Swt_stCH6;
SWTIN_EXT unsigned char Swt_stCH6_mp0;
SWTIN_EXT const unsigned int Swt_tiCH6Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH6;
SWTIN_EXT unsigned char Swt_nCH6ErrCntr;
SWTIN_EXT unsigned char Swt_stCH6Err;
#endif
#if SWT_IN7_EN == 1
#define SWT_IN7_Mask DDRH_DDRH7
SWTIN_EXT unsigned char Swt_stCH7;
SWTIN_EXT unsigned char Swt_stCH7_mp0;
SWTIN_EXT const unsigned int Swt_tiCH7Debounce_C;
SWTIN_EXT unsigned int Swt_tiCH7;
SWTIN_EXT unsigned char Swt_nCH7ErrCntr;
SWTIN_EXT unsigned char Swt_stCH7Err;
#endif
//Variable definations
#if SWT_IN0_EN == 1
#define Swt_stKeyACC Swt_stCH0 //雨刮开关组开关输入1,
#define Swt_stKeyACC_mp0 Swt_stCH0_mp0 //雨刮开关组开关输入1第一次采样值,unsigned char
//#define Swt_stKeyACC_mp1 Swt_stCH0_mp1 //雨刮开关组开关输入1第二次采样值,unsigned char
#define Swt_tiKeyACCDebounce_C Swt_tiCH0Debounce_C //雨刮开关组开关输入1去抖动时间,unsigned char
#define Swt_tiKeyACC Swt_tiCH0 //雨刮开关组开关输入1第一次采样时间,unsigned int
#define Swt_nKeyACCErrCntr Swt_nCH0ErrCntr //雨刮开关组开关输入1出错计数器,unsigned char
#define Swt_stKeyACCErr Swt_stCH0Err //雨刮开关组开关输入1出错标志,unsigned char
#endif
#if SWT_IN1_EN == 1
#define Swt_stKeyStrt Swt_stCH1 //雨刮开关组开关输入2,
#define Swt_stKeyStrt_mp0 Swt_stCH1_mp0 //雨刮开关组开关输入2第一次采样值,unsigned char
//#define Swt_stKeyStrt_mp1 Swt_stCH1_mp1 //雨刮开关组开关输入2第二次采样值,unsigned char
#define Swt_tiKeyStrtDebounce_C Swt_tiCH1Debounce_C //雨刮开关组开关输入2去抖动时间,unsigned char
#define Swt_tiKeyStrt Swt_tiCH1 //雨刮开关组开关输入2第一次采样时间,unsigned int
#define Swt_nKeyStrtErrCntr Swt_nCH1ErrCntr //雨刮开关组开关输入2出错计数器,unsigned char
#define Swt_stKeyStrtErr Swt_stCH1Err //雨刮开关组开关输入2出错标志,unsigned char
#endif
#if SWT_IN2_EN == 1
#define Swt_stAutoRst Swt_stCH2 //灯光开关组开关输入1,unsigned char
#define Swt_stAutoRst_mp0 Swt_stCH2_mp0 //灯光开关组开关输入1第一次采样值,unsigned char
//#define Swt_stAutoRst_mp1 Swt_stCH2_mp1 //灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiAutoRstDebounce_C Swt_tiCH2Debounce_C //灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiAutoRst Swt_tiCH2 //灯光开关组开关输入1第一次采样时间,unsigned int
#define Swt_nAutoRstErrCntr Swt_nCH2ErrCntr //灯光开关组开关输入1出错计数器,unsigned char
#define Swt_stAutoRstErr Swt_stCH2Err //灯光开关组开关输入1出错标志,unsigned char
#endif
#if SWT_IN3_EN == 1
#define Swt_stKeyON Swt_stCH3 //雨刮开关组开关输入4,
#define Swt_stKeyON_mp0 Swt_stCH3_mp0 //雨刮开关组开关输入4第一次采样值,unsigned char
//#define Swt_stKeyON_mp1 Swt_stCH3_mp1 //雨刮开关组开关输入4第二次采样值,unsigned char
#define Swt_tiKeyONDebounce_C Swt_tiCH3Debounce_C //雨刮开关组开关输入4去抖动时间,unsigned char
#define Swt_tiKeyON Swt_tiCH3 //雨刮开关组开关输入4第一次采样时间,unsigned int
#define Swt_nKeyONErrCntr Swt_nCH3ErrCntr //雨刮开关组开关输入4出错计数器,unsigned char
#define Swt_stKeyONErr Swt_stCH3Err //雨刮开关组开关输入4出错标志,unsigned char
#endif
#if SWT_IN4_EN == 1
#define Swt_stWiperPos Swt_stCH4 //雨刮开关组开关输入3,
#define Swt_stWiperPos_mp0 Swt_stCH4_mp0 //雨刮开关组开关输入3第一次采样值,unsigned char
//#define Swt_stWiperPos_mp1 Swt_stCH4_mp1 //雨刮开关组开关输入3第二次采样值,unsigned char
#define Swt_tiWiperPosDebounce_C Swt_tiCH4Debounce_C //雨刮开关组开关输入3去抖动时间,unsigned char
//#define Swt_tiWiperPosDebounce_C Swt_tiCH4DebounceH_C//雨刮开关组开关输入3去抖动时间,unsigned char
#define Swt_tiWiperPos Swt_tiCH4 //雨刮开关组开关输入3第一次采样时间,unsigned int
#define Swt_nWiperPosErrCntr Swt_nCH4ErrCntr //雨刮开关组开关输入3出错计数器,unsigned char
#define Swt_stWiperPosErr Swt_stCH4Err //雨刮开关组开关输入3出错标志,unsigned char
#endif
#if SWT_IN5_EN == 1
#define Swt_stAC Swt_stCH5 //灯光开关组开关输入1,unsigned char
#define Swt_stAC_mp0 Swt_stCH5_mp0 //灯光开关组开关输入1第一次采样值,unsigned char
//#define Swt_stAC_mp1 Swt_stCH5_mp1 //灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiACDebounce_C Swt_tiCH5Debounce_C //灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiAC Swt_tiCH5 //灯光开关组开关输入1第一次采样时间,unsigned int
#define Swt_nACErrCntr Swt_nCH5ErrCntr //灯光开关组开关输入1出错计数器,unsigned char
#define Swt_stACErr Swt_stCH5Err //灯光开关组开关输入1出错标志,unsigned char
#endif
#if SWT_IN6_EN == 1
#define Swt_stBrake Swt_stCH6 //灯光开关组开关输入1,unsigned char
#define Swt_stACTemp Swt_stCH6 //灯光开关组开关输入1,unsigned char
#define Swt_stACTemp_mp0 Swt_stCH6_mp0 //灯光开关组开关输入1第一次采样值,unsigned char
//#define Swt_stACTemp_mp1 Swt_stCH6_mp1 //灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiACTempDebounce_C Swt_tiCH6Debounce_C//灯光开关组开关输入1去抖动时间,unsigned char
#define Swt_tiACTemp Swt_tiCH6 //灯光开关组开关输入1第一次采样时间,unsigned int
#define Swt_nACTempErrCntr Swt_nCH6ErrCntr //灯光开关组开关输入1出错计数器,unsigned char
#define Swt_stACTempErr Swt_stCH6Err //灯光开关组开关输入1出错标志,unsigned char
#endif
#if SWT_IN7_EN == 1
#define Swt_stReverse Swt_stCH7 //左转向开关输入,unsigned char
#define Swt_stReverse_mp0 Swt_stCH7_mp0 //左转向开关输入第一次采样值,unsigned char
//#define Swt_stReserved_mp1 Swt_stCH7_mp1 //左转向开关输入去抖动时间,unsigned char
#define Swt_tiReverseDebounce_C Swt_tiCH7Debounce_C //左转向开关输入去抖动时间,unsigned char
#define Swt_tiReverse Swt_tiCH7 //左转向开关输入第一次采样时间,unsigned int
#define Swt_nReverseErrCntr Swt_nCH7ErrCntr //左转向开关输入出错计数器,unsigned char
#define Swt_stReverseErr Swt_stCH7Err //左转向开关输入出错标志,unsigned char
#endif
#define SWTITCH_TEST_MODE 1
#if SWTITCH_TEST_MODE == 1
#define SWITCHTEST_PIN0 PORTK_BIT0
#define SWITCHTEST_PIN0_MSK DDRK_DDK0
#define SWITCHTEST_PIN1 PORTK_BIT1
#define SWITCHTEST_PIN1_MSK DDRK_DDK1
#define SWITCHTEST_PIN2 PORTK_BIT2
#define SWITCHTEST_PIN2_MSK DDRK_DDK2
#define SWITCHTEST_PIN3 PORTK_BIT3
#define SWITCHTEST_PIN3_MSK DDRK_DDK3
SWTIN_EXT unsigned char Swt_stTest;
SWTIN_EXT unsigned int LIN_CurrentTime;
SWTIN_EXT unsigned int Swt_tiSteady;
#endif
/************************************
*Function Name: Swt_GetInput
*Parameter: NONE
*Orignator: Wang junpeng
*Date: 14th, June, 2005
*Discription: Read MC33993 input pin state
*
**************************************/
void Swt_GetInput(void);
/************************************
*Function Name: Swt_Init
*Parameter: NONE
*Orignator: Wang junpeng
*Date: 14th, June, 2005
*Discription: Initialize Swt Status
*
**************************************/
void Swt_Init(void);
void Swt_GetKeyPos(void);
void VirtualWiper(void);
unsigned char LIN_CheckTimeOut(unsigned int wTimeStart, unsigned int wTimeNow, unsigned int wTimeOut);
unsigned int LIN_GetCurrentTime(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -