📄 tsc2200_exp.h
字号:
#ifndef __TSC2200_DEFINED
#define __TSC2200_DEFINED
#define TSC_CMD_READ 0x8000
#define TSC_CMD_WRITE 0x0000
// Register address definition
// Control Registers
#define TSC_CMD_ADC 0x0800
#define TSC_CMD_KEY 0x0820
#define TSC_CMD_DACCTL 0x0840
#define TSC_CMD_REF 0x0860
#define TSC_CMD_RESET 0x0880
#define TSC_CMD_CFG 0x08A0
#define TSC_CMD_KPMASK 0x0A00
// Data Registers
#define TSC_CMD_X 0x0000
#define TSC_CMD_Y 0x0020
#define TSC_CMD_Z1 0x0040
#define TSC_CMD_Z2 0x0060
#define TSC_CMD_KPDATA 0x0080
#define TSC_CMD_BAT1 0x00A0
#define TSC_CMD_BAT2 0x00C0
#define TSC_CMD_AUX1 0x00E0
#define TSC_CMD_AUX2 0x0100
#define TSC_CMD_TEMP1 0x0120
#define TSC_CMD_TEMP2 0x0140
#define TSC_CMD_DACDATA 0x0160
#define TSC_CMD_ZERO 0x0200
// A/D Converter Control Register
// ControlMode
#define ADC_PSM_HOST 0x0000
#define ADC_PSM_TSC2200 0x8000
// ConvCtl
#define ADC_STS_NORMAL 0x0000
#define ADC_STS_STOP 0x4000
// ADFunction
#define ADC_AD_INVALID 0x0000
#define ADC_AD_XY_SCAN 0x0400
#define ADC_AD_XYZ_SCAN 0x0800
#define ADC_AD_X_SCAN 0x0C00
#define ADC_AD_Y_SCAN 0x1000
#define ADC_AD_Z_SCAN 0x1400
#define ADC_AD_BAT1_CONV 0x1800
#define ADC_AD_BAT2_CONV 0x1C00
#define ADC_AD_AUX1_CONV 0x2000
#define ADC_AD_AUX2_CONV 0x2400
#define ADC_AD_TEMP1_CONV 0x2800
#define ADC_AD_PORT_SCAN 0x2C00
#define ADC_AD_TEMP2_CONV 0x3000
#define ADC_AD_X_DRIVER 0x3400
#define ADC_AD_Y_DRIVER 0x3800
#define ADC_AD_Z_DRIVER 0x3C00
// ADResolution
#define ADC_RS_EIGHT 0x0100
#define ADC_RS_TEN 0x0200
#define ADC_RS_TWELVE 0x0300
// ADAvgs
#define ADC_AV_ZERO 0x0000
#define ADC_AV_FOUR 0x0040
#define ADC_AV_EIGHT 0x0080
#define ADC_AV_SIXTEEN 0x00C0
// ConvClock
#define ADC_CL_8 0x0000
#define ADC_CL_4 0x0010
#define ADC_CL_2 0x0020
#define ADC_CL_1 0x0030
// PVSTime
#define ADC_PV_0 0x0000
#define ADC_PV_100_US 0x0002
#define ADC_PV_500_US 0x0004
#define ADC_PV_1_MS 0x0006
#define ADC_PV_5_MS 0x0008
#define ADC_PV_10_MS 0x000A
#define ADC_PV_50_MS 0x000C
#define ADC_PV_100_MS 0x000E
// DAC CONTROL REGISTER
// Power Down
#define DAC_ON 0x0000
#define DAC_OFF 0x8000
// REFERNECE REGISTER
// Internal Reference Mode
#define REF_INT_EXTERNAL 0x0000
#define REF_INT_INTERNAL 0x0010
// Power-Up Delay Reference
#define REF_DL_0_US 0x0000
#define REF_DL_100_US 0x0006
#define REF_DL_500_US 0x0008
#define REF_DL_1_MS 0x000C
// Power Down Reference - whether or not the internal reference is power down in between conversions
#define REF_PDN_ON 0x0000
#define REF_PDN_OFF 0x0002
// Reference Volatage Control
#define REF_RFV_125 0x0000
#define REF_RFV_250 0x0001
// Configuration Control Register
// Data Available
#define CFG_DAVB 0x0040
// Precharge Time
#define CFG_PRE_20 0x0000
#define CFG_PRE_84 0x0008
#define CFG_PRE_276 0x0010
#define CFG_PRE_340 0x0018
#define CFG_PRE_1044 0x0020
#define CFG_PRE_1108 0x0028
#define CFG_PRE_1300 0x0030
#define CFG_PRE_1364 0x0038
// Sense Time
#define CFG_SNS_32 0x0000
#define CFG_SNS_96 0x0001
#define CFG_SNS_544 0x0002
#define CFG_SNS_608 0x0003
#define CFG_SNS_2080 0x0004
#define CFG_SNS_2144 0x0005
#define CFG_SNS_2592 0x0006
#define CFG_SNS_2656 0x0007
// Keypad Control Register
// Keyboard Status
#define KEY_STC_NO 0x0000
#define KEY_STC_YES 0x8000
// Scan Status
#define KEY_SCS_BUSY 0x0000
#define KEY_SCS_DONE 0x4000
#define KEY_SCS_NORMAL 0x0000
#define KEY_SCS_STOP 0x4000
//De-bounce Control
#define KEY_DB_2 0x0000
#define KEY_DB_10 0x0800
#define KEY_DB_20 0x1000
#define KEY_DB_50 0x1800
#define KEY_DB_60 0x2000
#define KEY_DB_80 0x2800
#define KEY_DB_100 0x3000
#define KEY_DB_120 0x3800
// Keypad Mask Register
#define KPMASK_ALL 0x0000
#define KPMASK_M0 0x0001
#define KPMASK_M1 0x0002
#define KPMASK_M2 0x0004
#define KPMASK_M3 0x0008
#define KPMASK_M4 0x0010
#define KPMASK_M5 0x0020
#define KPMASK_M6 0x0040
#define KPMASK_M7 0x0080
#define KPMASK_M8 0x0100
#define KPMASK_M9 0x0200
#define KPMASK_M10 0x0400
#define KPMASK_M11 0x0800
#define KPMASK_M12 0x1000
#define KPMASK_M13 0x2000
#define KPMASK_M14 0x4000
#define KPMASK_M15 0x8000
//Reset Register
#define RESET_RESET 0xBBFF
#define ADC_SETUP_VALUE (ADC_PSM_TSC2200 | ADC_STS_NORMAL | ADC_AD_XY_SCAN | ADC_RS_TWELVE | ADC_AV_SIXTEEN | ADC_CL_2 | ADC_PV_10_MS)
#define ADC_SETUP_VALUE_2 (ADC_PSM_HOST | ADC_STS_NORMAL | ADC_AD_X_SCAN | ADC_RS_TWELVE | ADC_AV_SIXTEEN | ADC_CL_2 | ADC_PV_10_MS)
#define TSC2200_SPI_DELAY 1000
#define SPI_ENABLE *pSPI_CTL |= 0x4000
#define SPI_DISABLE *pSPI_CTL &= ~0x4000
#define SPI_SELECT_TSC2200 *pSPI_CtrlBaseaAddr = SPI_CTRL_TSC2200
#define SPI_SELECT_NONE *pSPI_CtrlBaseaAddr = SPI_CTRL_NONE
//Function prototye
void Tsc2200_Exp(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -