mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2025-12-12 18:28:53 +01:00
533 lines
19 KiB
C
533 lines
19 KiB
C
/**
|
|
* @cond
|
|
* The following section will be excluded from the documentation.
|
|
*/
|
|
/***********************************************************************************************************************
|
|
PicoMite MMBasic
|
|
|
|
Touch.h
|
|
|
|
<COPYRIGHT HOLDERS> Geoff Graham, Peter Mather
|
|
Copyright (c) 2021, <COPYRIGHT HOLDERS> All rights reserved.
|
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
|
|
in the documentation and/or other materials provided with the distribution.
|
|
3. The name MMBasic be used when referring to the interpreter in any documentation and promotional material and the original copyright message be displayed
|
|
on the console at startup (additional copyright messages may be added).
|
|
4. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed
|
|
by the <copyright holder>.
|
|
5. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software
|
|
without specific prior written permission.
|
|
THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDERS> AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDERS> BE LIABLE FOR ANY DIRECT,
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
************************************************************************************************************************/
|
|
|
|
|
|
|
|
/**********************************************************************************
|
|
the C language function associated with commands, functions or operators should be
|
|
declared here
|
|
**********************************************************************************/
|
|
#if !defined(INCLUDE_COMMAND_TABLE) && !defined(INCLUDE_TOKEN_TABLE)
|
|
|
|
void fun_touch(void);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/**********************************************************************************
|
|
All command tokens tokens (eg, PRINT, FOR, etc) should be inserted in this table
|
|
**********************************************************************************/
|
|
#ifdef INCLUDE_COMMAND_TABLE
|
|
|
|
|
|
#endif
|
|
|
|
|
|
/**********************************************************************************
|
|
All other tokens (keywords, functions, operators) should be inserted in this table
|
|
**********************************************************************************/
|
|
#ifdef INCLUDE_TOKEN_TABLE
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if !defined(INCLUDE_COMMAND_TABLE) && !defined(INCLUDE_TOKEN_TABLE)
|
|
|
|
#define CAL_ERROR_MARGIN 16
|
|
#define TARGET_OFFSET 30
|
|
#define TOUCH_SAMPLES 8
|
|
#define TOUCH_DISCARD 2
|
|
|
|
#define GET_X_AXIS 0
|
|
#define GET_Y_AXIS 1
|
|
#define GET_X_AXIS2 0x10
|
|
#define GET_Y_AXIS2 0x11
|
|
#define PENIRQ_ON 3
|
|
|
|
#define TOUCH_NOT_CALIBRATED -999999
|
|
#define TOUCH_ERROR -1
|
|
|
|
#define CMD_MEASURE_X 0b10010000
|
|
#define CMD_MEASURE_Y 0b11010000
|
|
#define CMD_PENIRQ_ON 0b10010000
|
|
|
|
extern void ConfigTouch(unsigned char *p);
|
|
extern void InitTouch(void);
|
|
extern void GetCalibration(int x, int y, int *xval, int *yval);
|
|
|
|
// extern volatile int TouchX, TouchY;
|
|
extern volatile bool TouchState, TouchDown, TouchUp;
|
|
extern int TOUCH_GETIRQTRIS;
|
|
|
|
#define TOUCH_ERROR -1
|
|
|
|
// these are defined so that the state of the touch PEN IRQ can be determined with the minimum of CPU cycles
|
|
extern volatile unsigned int TouchIrqPortAddr;
|
|
extern int TouchIrqPortBit;
|
|
#define TOUCH_DOWN (!(PinRead(Option.TOUCH_IRQ)))
|
|
|
|
extern int GetTouchValue(int cmd);
|
|
extern int TOUCH_IRQ_PIN;
|
|
extern int TOUCH_CS_PIN;
|
|
extern int TOUCH_Click_PIN;
|
|
|
|
extern int GetTouch(int x);
|
|
extern int GetTouchAxis(int);
|
|
extern int GetTouchAxisCap(int);
|
|
#define FT6X36_ADDR 0x38
|
|
#define FT6X36_REG_DEVICE_MODE 0x00
|
|
#define FT6X36_REG_GESTURE_ID 0x01
|
|
#define FT6X36_REG_NUM_TOUCHES 0x02
|
|
#define FT6X36_REG_P1_XH 0x03
|
|
#define FT6X36_REG_P1_XL 0x04
|
|
#define FT6X36_REG_P1_YH 0x05
|
|
#define FT6X36_REG_P1_YL 0x06
|
|
#define FT6X36_REG_P1_WEIGHT 0x07
|
|
#define FT6X36_REG_P1_MISC 0x08
|
|
#define FT6X36_REG_P2_XH 0x09
|
|
#define FT6X36_REG_P2_XL 0x0A
|
|
#define FT6X36_REG_P2_YH 0x0B
|
|
#define FT6X36_REG_P2_YL 0x0C
|
|
#define FT6X36_REG_P2_WEIGHT 0x0D
|
|
#define FT6X36_REG_P2_MISC 0x0E
|
|
#define FT6X36_REG_THRESHHOLD 0x80
|
|
#define FT6X36_REG_FILTER_COEF 0x85
|
|
#define FT6X36_REG_CTRL 0x86
|
|
#define FT6X36_REG_TIME_ENTER_MONITOR 0x87
|
|
#define FT6X36_REG_TOUCHRATE_ACTIVE 0x88
|
|
#define FT6X36_REG_TOUCHRATE_MONITOR 0x89 // value in ms
|
|
#define FT6X36_REG_RADIAN_VALUE 0x91
|
|
#define FT6X36_REG_OFFSET_LEFT_RIGHT 0x92
|
|
#define FT6X36_REG_OFFSET_UP_DOWN 0x93
|
|
#define FT6X36_REG_DISTANCE_LEFT_RIGHT 0x94
|
|
#define FT6X36_REG_DISTANCE_UP_DOWN 0x95
|
|
#define FT6X36_REG_DISTANCE_ZOOM 0x96
|
|
#define FT6X36_REG_LIB_VERSION_H 0xA1
|
|
#define FT6X36_REG_LIB_VERSION_L 0xA2
|
|
#define FT6X36_REG_CHIPID 0xA3
|
|
#define FT6X36_REG_INTERRUPT_MODE 0xA4
|
|
#define FT6X36_REG_POWER_MODE 0xA5
|
|
#define FT6X36_REG_FIRMWARE_VERSION 0xA6
|
|
#define FT6X36_REG_PANEL_ID 0xA8
|
|
#define FT6X36_REG_STATE 0xBC
|
|
|
|
#define FT6X36_PMODE_ACTIVE 0x00
|
|
#define FT6X36_PMODE_MONITOR 0x01
|
|
#define FT6X36_PMODE_STANDBY 0x02
|
|
#define FT6X36_PMODE_HIBERNATE 0x03
|
|
|
|
#define FT6X36_VENDID 0x11
|
|
#define FT6206_CHIPID 0x06
|
|
#define FT6236_CHIPID 0x36
|
|
#define FT6336_CHIPID 0x64
|
|
|
|
#define FT6X36_DEFAULT_THRESHOLD 22
|
|
#define CAP_RESET Option.TOUCH_CS
|
|
|
|
#define GT911_ADDR 0x14
|
|
#define GT911_ADDR2 0x5D
|
|
#define GT911_DEV_MODE_BIT_MASK 0x70U
|
|
#define GT911_DEV_MODE_BIT_POSITION 4U
|
|
#define GT911_GEST_ID_BIT_MASK 0xFFU
|
|
#define GT911_GEST_ID_BIT_POSITION 0U
|
|
#define GT911_TD_STATUS_BIT_BUFFER_STAT 0x80U
|
|
#define GT911_TD_STATUS_BIT_HAVEKEY 0x10U
|
|
#define GT911_TD_STATUS_BITS_NBTOUCHPTS 0x0FU
|
|
//JCC adding END
|
|
#define GT911_TD_STATUS_BIT_MASK 0x07U
|
|
#define GT911_TD_STATUS_BIT_POSITION 0U
|
|
#define GT911_MAX_X_LENGTH HRes
|
|
#define GT911_MAX_Y_LENGTH VRes
|
|
#define GT911_P1_XH_EF_BIT_MASK 0xC0U
|
|
#define GT911_P1_XH_EF_BIT_POSITION 6U
|
|
#define GT911_P1_XL_TP_BIT_MASK 0xFFU
|
|
#define GT911_P1_XL_TP_BIT_POSITION 0U
|
|
#define GT911_P1_TID_BIT_MASK 0xFFU
|
|
#define GT911_P1_TID_BIT_POSITION 7U
|
|
/* Current mode register of the GT911 (R/W) */
|
|
|
|
/* Gesture ID register */
|
|
#define GT911_GEST_ID_REG 0x814BU
|
|
|
|
/* Gesture mode enabled */
|
|
#define GT911_GESTURE_EN 0x8U
|
|
|
|
/* Gesture Coordinates registers */
|
|
#define GT911_START_X_L 0x814DU
|
|
#define GT911_START_X_H 0x814EU
|
|
#define GT911_START_Y_L 0x814FU
|
|
#define GT911_START_Y_H 0x8150U
|
|
#define GT911_END_X_L 0x8151U
|
|
#define GT911_END_X_H 0x8152U
|
|
#define GT911_END_Y_L 0x8153U
|
|
#define GT911_END_Y_H 0x8154U
|
|
#define GT911_WEIGHT_L 0x8155U
|
|
#define GT911_WEIGHT_H 0x8156U
|
|
#define GT911_HEIGHT_L 0x8157U
|
|
#define GT911_HEIGHT_H 0x8158U
|
|
|
|
|
|
/* Touch Data Status register : gives number of active touch points (0..5) */
|
|
#define GT911_TD_STAT_REG 0x814EU
|
|
|
|
/* P1 X, Y coordinates, weight(Point size) and track-id registers */
|
|
#define GT911_P1_XL_REG 0x8150U
|
|
#define GT911_P1_XH_REG 0x8151U
|
|
#define GT911_P1_YL_REG 0x8152U
|
|
#define GT911_P1_YH_REG 0x8153U
|
|
#define GT911_P1_WEIGHTL_REG 0x8154U
|
|
#define GT911_P1_WEIGHTH_REG 0x8155U
|
|
#define GT911_P1_TID_REG 0x8157U
|
|
|
|
/* P2 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P2_XL_REG 0x8158U
|
|
#define GT911_P2_XH_REG 0x8159U
|
|
#define GT911_P2_YL_REG 0x815AU
|
|
#define GT911_P2_YH_REG 0x815BU
|
|
#define GT911_P2_WEIGHTL_REG 0x815CU
|
|
#define GT911_P2_WEIGHTH_REG 0x815DU
|
|
#define GT911_P2_TID_REG 0x815FU
|
|
|
|
/* P3 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P3_XL_REG 0x8160U
|
|
#define GT911_P3_XH_REG 0x8161U
|
|
#define GT911_P3_YL_REG 0x8162U
|
|
#define GT911_P3_YH_REG 0x8163U
|
|
#define GT911_P3_WEIGHTL_REG 0x8164U
|
|
#define GT911_P3_WEIGHTH_REG 0x8165U
|
|
#define GT911_P3_TID_REG 0x8167U
|
|
|
|
/* P4 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P4_XL_REG 0x8168U
|
|
#define GT911_P4_XH_REG 0x8169U
|
|
#define GT911_P4_YL_REG 0x816AU
|
|
#define GT911_P4_YH_REG 0x816BU
|
|
#define GT911_P4_WEIGHTL_REG 0x816CU
|
|
#define GT911_P4_WEIGHTH_REG 0x816DU
|
|
#define GT911_P4_TID_REG 0x816FU
|
|
|
|
/* P5 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P5_XL_REG 0x8170U
|
|
#define GT911_P5_XH_REG 0x8171U
|
|
#define GT911_P5_YL_REG 0x8172U
|
|
#define GT911_P5_YH_REG 0x8173U
|
|
#define GT911_P5_WEIGHTL_REG 0x8174U
|
|
#define GT911_P5_WEIGHTH_REG 0x8175U
|
|
#define GT911_P5_TID_REG 0x8177U
|
|
|
|
/* Threshold for touch detection */
|
|
#define GT911_TH_GROUP_REG 0x80U
|
|
|
|
/* Filter function coefficients */
|
|
#define GT911_TH_DIFF_REG 0x85U
|
|
|
|
/* Control register */
|
|
#define GT911_CTRL_REG 0x86U
|
|
|
|
/* The time period of switching from Active mode to Monitor mode when there is no touching */
|
|
#define GT911_TIMEENTERMONITOR_REG 0x87U
|
|
|
|
/* Report rate in Active mode */
|
|
#define GT911_PERIODACTIVE_REG 0x88U
|
|
|
|
/* Report rate in Monitor mode */
|
|
#define GT911_PERIODMONITOR_REG 0x89U
|
|
|
|
/* Maximum offset while Moving Left and Moving Right gesture */
|
|
#define GT911_OFFSET_LR_REG 0x92U
|
|
|
|
/* Maximum offset while Moving Up and Moving Down gesture */
|
|
#define GT911_OFFSET_UD_REG 0x93U
|
|
|
|
/* Minimum distance while moving gesture */
|
|
#define GT911_DIS_GESTURE_REG 0x8071U
|
|
|
|
/* High 8-bit of LIB Version info */
|
|
#define GT911_LIB_VER_H_REG 0xA1U
|
|
|
|
/* Low 8-bit of LIB Version info */
|
|
#define GT911_LIB_VER_L_REG 0xA2U
|
|
|
|
/* Chip Selecting */
|
|
#define GT911_CIPHER_REG 0xA3U
|
|
|
|
/* Module_Switch1 register for Interrupt */
|
|
#define GT911_MSW1_REG 0x804DU
|
|
|
|
/* Current power mode the GT911 system is in (R) */
|
|
#define GT911_PWR_MODE_REG 0xA5U
|
|
|
|
/* GT911 firmware version */
|
|
#define GT911_FIRMID_REG 0x8144U
|
|
|
|
/* GT911 Chip identification register */
|
|
#define GT911_CHIP_ID_REG 0x8140U
|
|
|
|
/* Release code version */
|
|
#define GT911_RELEASE_CODE_ID_REG 0xAFU
|
|
|
|
/* Current operating mode the GT911 system is in (R) */
|
|
#define GT911_COMMAND_REG 0x8040U
|
|
|
|
/* Coordinates report rate (= 5+N ms) */
|
|
#define GT911_REFRESH_RATE_REG 0x8056U
|
|
#define GT911_REFRESH_RATE_MSK 0x0FU
|
|
|
|
/* Version number configuration */
|
|
#define GT911_CONFIG_VERS_REG 0x8047U
|
|
|
|
/* Checksum configuration register */
|
|
#define GT911_CONFIG_CHKSUM_REG 0x80FFU
|
|
|
|
/* Configuration update flag register */
|
|
#define GT911_CONFIG_FRESH_REG 0x8100U
|
|
|
|
/* Command check register */
|
|
#define GT911_COMMAND_CHK_REG 0x8046U
|
|
|
|
/* Gesture configuration registers */
|
|
#define GT911_GESTURE_PRESS_TIME 0x8072U
|
|
#define GT911_GESTURE_TIME_ABORT 0x00U
|
|
|
|
#define GT911_GESTURE_SLOPE_ADJUST 0x8073U
|
|
#define GT911_GESTURE_ADJUST_VAL 0x00U
|
|
|
|
#define GT911_GESTURE_CTRL_REG 0x8074U
|
|
#define GT911_GESTURE_INVALID_TIM 0x0FU
|
|
|
|
#define GT911_GESTURE_SWITCH1_REG 0x8075U
|
|
#define GT911_GESTURE_SWITCH2_REG 0x8076U
|
|
#define GT911_GESTURE_SWITCH1_VAL 0x00U
|
|
#define GT911_GESTURE_SWITCH2_VAL 0x00U
|
|
|
|
#define GT911_GESTURE_REFRESH_REG 0x8077U
|
|
|
|
#define GT911_GESTURE_TH_REG 0x8078U
|
|
#define GT911_OK (0)
|
|
#define GT911_ERROR (-1)
|
|
|
|
/* Max detectable simultaneous touches */
|
|
#define GT911_MAX_NB_TOUCH 5U
|
|
|
|
/* Touch GT911 IDs: "911" */
|
|
#define GT911_ID 0x00313139U
|
|
#define GT911_ID1 0x39U
|
|
#define GT911_ID2 0x31U
|
|
#define GT911_ID3 0x31U
|
|
/* Possible values of GT911_DEV_MODE_REG */
|
|
#define GT911_DEV_MODE_WORKING 0x00U
|
|
#define GT911_DEV_MODE_FACTORY 0x04U
|
|
|
|
/* Possible values of GT911_GEST_ID_REG */
|
|
#define GT911_GEST_ID_NO_GESTURE 0x00U
|
|
#define GT911_GEST_ID_SWIPE_RIGHT 0xAAU
|
|
#define GT911_GEST_ID_SWIPE_LEFT 0xBBU
|
|
#define GT911_GEST_ID_SWIPE_DOWN 0xABU
|
|
#define GT911_GEST_ID_SWIPE_UP 0xBAU
|
|
#define GT911_GEST_ID_DOUBLE_TAP 0xCCU
|
|
|
|
/* Values Pn_XH and Pn_YH related */
|
|
#define GT911_TOUCH_EVT_FLAG_PRESS_DOWN 0x00U
|
|
#define GT911_TOUCH_EVT_FLAG_LIFT_UP 0x01U
|
|
#define GT911_TOUCH_EVT_FLAG_CONTACT 0x02U
|
|
#define GT911_TOUCH_EVT_FLAG_NO_EVENT 0x03U
|
|
|
|
/* Possible values of GT911_MSW1_REG(Module_Switch1) */
|
|
#define GT911_M_SW1_INTERRUPT_RISING 0x00U
|
|
#define GT911_M_SW1_INTERRUPT_FALLING 0x01U
|
|
#define GT911_M_SW1_INTERRUPT_LOW 0x02U
|
|
#define GT911_M_SW1_INTERRUPT_HIGH 0x03U
|
|
|
|
/* Mask for reading the MSW1 register without INT trigger */
|
|
#define GT911_M_SW1_DATA_MASK 0xFCU
|
|
/* Current mode register of the GT911 (R/W) */
|
|
#define GT911_DEV_MODE_REG 0x8040U
|
|
|
|
/* Gesture ID register */
|
|
#define GT911_GEST_ID_REG 0x814BU
|
|
|
|
/* Gesture mode enabled */
|
|
#define GT911_GESTURE_EN 0x8U
|
|
|
|
/* Gesture Coordinates registers */
|
|
#define GT911_START_X_L 0x814DU
|
|
#define GT911_START_X_H 0x814EU
|
|
#define GT911_START_Y_L 0x814FU
|
|
#define GT911_START_Y_H 0x8150U
|
|
#define GT911_END_X_L 0x8151U
|
|
#define GT911_END_X_H 0x8152U
|
|
#define GT911_END_Y_L 0x8153U
|
|
#define GT911_END_Y_H 0x8154U
|
|
#define GT911_WEIGHT_L 0x8155U
|
|
#define GT911_WEIGHT_H 0x8156U
|
|
#define GT911_HEIGHT_L 0x8157U
|
|
#define GT911_HEIGHT_H 0x8158U
|
|
|
|
|
|
/* Touch Data Status register : gives number of active touch points (0..5) */
|
|
#define GT911_TD_STAT_REG 0x814EU
|
|
|
|
/* P1 X, Y coordinates, weight(Point size) and track-id registers */
|
|
#define GT911_P1_XL_REG 0x8150U
|
|
#define GT911_P1_XH_REG 0x8151U
|
|
#define GT911_P1_YL_REG 0x8152U
|
|
#define GT911_P1_YH_REG 0x8153U
|
|
#define GT911_P1_WEIGHTL_REG 0x8154U
|
|
#define GT911_P1_WEIGHTH_REG 0x8155U
|
|
#define GT911_P1_TID_REG 0x8157U
|
|
|
|
/* P2 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P2_XL_REG 0x8158U
|
|
#define GT911_P2_XH_REG 0x8159U
|
|
#define GT911_P2_YL_REG 0x815AU
|
|
#define GT911_P2_YH_REG 0x815BU
|
|
#define GT911_P2_WEIGHTL_REG 0x815CU
|
|
#define GT911_P2_WEIGHTH_REG 0x815DU
|
|
#define GT911_P2_TID_REG 0x815FU
|
|
|
|
/* P3 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P3_XL_REG 0x8160U
|
|
#define GT911_P3_XH_REG 0x8161U
|
|
#define GT911_P3_YL_REG 0x8162U
|
|
#define GT911_P3_YH_REG 0x8163U
|
|
#define GT911_P3_WEIGHTL_REG 0x8164U
|
|
#define GT911_P3_WEIGHTH_REG 0x8165U
|
|
#define GT911_P3_TID_REG 0x8167U
|
|
|
|
/* P4 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P4_XL_REG 0x8168U
|
|
#define GT911_P4_XH_REG 0x8169U
|
|
#define GT911_P4_YL_REG 0x816AU
|
|
#define GT911_P4_YH_REG 0x816BU
|
|
#define GT911_P4_WEIGHTL_REG 0x816CU
|
|
#define GT911_P4_WEIGHTH_REG 0x816DU
|
|
#define GT911_P4_TID_REG 0x816FU
|
|
|
|
/* P5 X, Y coordinates, weight and tid registers */
|
|
#define GT911_P5_XL_REG 0x8170U
|
|
#define GT911_P5_XH_REG 0x8171U
|
|
#define GT911_P5_YL_REG 0x8172U
|
|
#define GT911_P5_YH_REG 0x8173U
|
|
#define GT911_P5_WEIGHTL_REG 0x8174U
|
|
#define GT911_P5_WEIGHTH_REG 0x8175U
|
|
#define GT911_P5_TID_REG 0x8177U
|
|
|
|
/* Threshold for touch detection */
|
|
#define GT911_TH_GROUP_REG 0x80U
|
|
|
|
/* Filter function coefficients */
|
|
#define GT911_TH_DIFF_REG 0x85U
|
|
|
|
/* Control register */
|
|
#define GT911_CTRL_REG 0x86U
|
|
|
|
/* The time period of switching from Active mode to Monitor mode when there is no touching */
|
|
#define GT911_TIMEENTERMONITOR_REG 0x87U
|
|
|
|
/* Report rate in Active mode */
|
|
#define GT911_PERIODACTIVE_REG 0x88U
|
|
|
|
/* Report rate in Monitor mode */
|
|
#define GT911_PERIODMONITOR_REG 0x89U
|
|
|
|
/* Maximum offset while Moving Left and Moving Right gesture */
|
|
#define GT911_OFFSET_LR_REG 0x92U
|
|
|
|
/* Maximum offset while Moving Up and Moving Down gesture */
|
|
#define GT911_OFFSET_UD_REG 0x93U
|
|
|
|
/* Minimum distance while moving gesture */
|
|
#define GT911_DIS_GESTURE_REG 0x8071U
|
|
|
|
/* High 8-bit of LIB Version info */
|
|
#define GT911_LIB_VER_H_REG 0xA1U
|
|
|
|
/* Low 8-bit of LIB Version info */
|
|
#define GT911_LIB_VER_L_REG 0xA2U
|
|
|
|
/* Chip Selecting */
|
|
#define GT911_CIPHER_REG 0xA3U
|
|
|
|
/* Module_Switch1 register for Interrupt */
|
|
#define GT911_MSW1_REG 0x804DU
|
|
|
|
/* Current power mode the GT911 system is in (R) */
|
|
#define GT911_PWR_MODE_REG 0xA5U
|
|
|
|
/* GT911 firmware version */
|
|
#define GT911_FIRMID_REG 0x8144U
|
|
|
|
/* GT911 Chip identification register */
|
|
#define GT911_CHIP_ID_REG 0x8140U
|
|
|
|
/* Release code version */
|
|
#define GT911_RELEASE_CODE_ID_REG 0xAFU
|
|
|
|
/* Current operating mode the GT911 system is in (R) */
|
|
#define GT911_COMMAND_REG 0x8040U
|
|
|
|
/* Coordinates report rate (= 5+N ms) */
|
|
#define GT911_REFRESH_RATE_REG 0x8056U
|
|
#define GT911_REFRESH_RATE_MSK 0x0FU
|
|
|
|
/* Version number configuration */
|
|
#define GT911_CONFIG_VERS_REG 0x8047U
|
|
|
|
/* Checksum configuration register */
|
|
#define GT911_CONFIG_CHKSUM_REG 0x80FFU
|
|
|
|
/* Configuration update flag register */
|
|
#define GT911_CONFIG_FRESH_REG 0x8100U
|
|
|
|
/* Command check register */
|
|
#define GT911_COMMAND_CHK_REG 0x8046U
|
|
|
|
/* Gesture configuration registers */
|
|
#define GT911_GESTURE_PRESS_TIME 0x8072U
|
|
#define GT911_GESTURE_TIME_ABORT 0x00U
|
|
|
|
#define GT911_GESTURE_SLOPE_ADJUST 0x8073U
|
|
#define GT911_GESTURE_ADJUST_VAL 0x00U
|
|
|
|
#define GT911_GESTURE_CTRL_REG 0x8074U
|
|
#define GT911_GESTURE_INVALID_TIM 0x0FU
|
|
|
|
#define GT911_GESTURE_SWITCH1_REG 0x8075U
|
|
#define GT911_GESTURE_SWITCH2_REG 0x8076U
|
|
#define GT911_GESTURE_SWITCH1_VAL 0x00U
|
|
#define GT911_GESTURE_SWITCH2_VAL 0x00U
|
|
|
|
#define GT911_GESTURE_REFRESH_REG 0x8077U
|
|
|
|
#define GT911_GESTURE_TH_REG 0x8078U
|
|
#endif
|
|
/* @endcond */ |