⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 switchinput.h

📁 此程序为DP256的开关采集实验程序,已经通过实验证明
💻 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 + -