diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index ac05a6302..54d8f714b 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -80,9 +80,9 @@ if (PCB STREQUAL X10) set(HARDWARE_TOUCH YES) set(USB_CHARGER YES) set(DEFAULT_THEME "DARKBLUE") - set(AUX_SERIAL ON) + set(AUX_SERIAL OFF) # todo ON if (NOT BLUETOOTH AND NOT INTERNAL_GPS) - set(AUX2_SERIAL ON) + set(AUX2_SERIAL OFF) # todo ON endif() set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS") else() @@ -190,9 +190,7 @@ set(TARGET_SRC ) if(HARDWARE_TOUCH) - set(TARGET_SRC ${TARGET_SRC} - tp_gt911.cpp - ) + set(TOUCH_DRIVER tp_gt911.cpp) add_definitions(-DHARDWARE_TOUCH) endif() @@ -222,6 +220,7 @@ set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ${LCD_DRIVER} ${AUX_SERIAL_DRIVER} + ${TOUCH_DRIVER} board.cpp backlight_driver.cpp ../common/arm/stm32/pwr_driver.cpp diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 49a0f13f7..1b5f46c56 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -208,6 +208,10 @@ void boardInit() DBGMCU_APB1PeriphConfig(DBGMCU_IWDG_STOP|DBGMCU_TIM1_STOP|DBGMCU_TIM2_STOP|DBGMCU_TIM3_STOP|DBGMCU_TIM4_STOP|DBGMCU_TIM5_STOP|DBGMCU_TIM6_STOP|DBGMCU_TIM7_STOP|DBGMCU_TIM8_STOP|DBGMCU_TIM9_STOP|DBGMCU_TIM10_STOP|DBGMCU_TIM11_STOP|DBGMCU_TIM12_STOP|DBGMCU_TIM13_STOP|DBGMCU_TIM14_STOP, ENABLE); #endif +#if defined(HARDWARE_TOUCH) + TouchInit(); +#endif + ledInit(); #if defined(USB_CHARGER) diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index fd862e2f0..85d05f25c 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -26,6 +26,10 @@ #include "board_common.h" #include "hal.h" +#if defined(HARDWARE_TOUCH) +#include "tp_gt911.h" +#endif + PACK(typedef struct { uint8_t pcbrev:2; uint8_t sticksPwmDisabled:1; diff --git a/radio/src/targets/horus/libopenui_config.h b/radio/src/targets/horus/libopenui_config.h index 2b7e576b8..b41b1cee0 100644 --- a/radio/src/targets/horus/libopenui_config.h +++ b/radio/src/targets/horus/libopenui_config.h @@ -83,6 +83,7 @@ constexpr uint32_t ALERT_TITLE_LINE_HEIGHT = 30; constexpr uint32_t ALERT_MESSAGE_TOP = ALERT_TITLE_TOP + 90; constexpr uint32_t ALERT_MESSAGE_LEFT = ALERT_TITLE_LEFT; constexpr uint32_t ALERT_ACTION_TOP = 240; +constexpr uint32_t ALERT_BUTTON_TOP = 300; constexpr uint32_t PAGE_TITLE_TOP = 2; constexpr uint32_t PAGE_TITLE_LEFT = 50; diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 5c4929e95..74323e1ba 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -18,12 +18,201 @@ * GNU General Public License for more details. */ +#include "opentx.h" #include "tp_gt911.h" +//GT911 param table +const uint8_t TOUCH_GT911_Cfg[] = + { + GT911_CFG_NUMER, // 0x8047 Config version + 0xE0, // 0x8048 X output map : x 480 + 0x01, + 0x10, // 0x804A Y ouptut max : y 272 + 0x01, + GT911_MAX_TP, // 0x804C Touch number + 0x3C, // 0x804D Module switch 1 : bit4= xy change Int mode + 0x20, // 0x804E Module switch 2 + 0x22, // 0x804F Shake_Count + 0x0A, // 0x8050 Filter + 0x28, // 0x8051 Larger touch + 0x0F, // 0x8052 Noise reduction + 0x5A, // 0x8053 Screen touch level + 0x3C, // 0x8054 Screen touch leave + 0x03, // 0x8055 Low power control + 0x05, // 0x8056 Refresh rate + 0x00, // 0x8057 X threshold + 0x00, // 0x8058 Y threshold + 0x00, // 0x8059 Reserved + 0x00, // 0x805A Reserved + 0x11, // 0x805B Space (top, bottom) + 0x11, // 0x805C Space (left, right) + 0x08, // 0x805D Mini filter + 0x18, // 0x805E Strech R0 + 0x1A, // 0x805F Strech R1 + 0x1E, // 0x8060 Strech R2 + 0x14, // 0x8061 Strech RM + 0x87, // 0x8062 Drv groupA num + 0x29, // 0x8063 Drv groupB num + 0x0A, // 0x8064 Sensor num + 0xCF, // 0x8065 FreqA factor + 0xD1, // 0x8066 FreqB factor + 0xB2, // 0x8067 Panel bit freq + 0x04, + 0x00, // 0x8069 Reserved + 0x00, + 0x00, // 0x806B Panel tx gain + 0xD8, // 0x806C Panel rx gain + 0x02, // 0x806D Panel dump shift + 0x1D, // 0x806E Drv frame control + 0x00, // 0x806F Charging level up + 0x01, // 0x8070 Module switch 3 + 0x00, // 0x8071 Gesture distance + 0x00, // 0x8072 Gesture long press time + 0x00, // 0x8073 X/Y slope adjust + 0x00, // 0x8074 Gesture control + 0x00, // 0x8075 Gesture switch 1 + 0x00, // 0x8076 Gesture switch 2 + 0x00, // 0x8077 Gesture refresh rate + 0x00, // 0x8078 Gesture touch level + 0x00, // 0x8079 New green wake up level + 0xB4, // 0x807A Freq hopping start + 0xEF, // 0x807B Freq hopping end + 0x94, // 0x807C Noise detect time + 0xD5, // 0x807D Hopping flag + 0x02, // 0x807E Hopping flag + 0x07, // 0x807F Noise threshold + 0x00, // 0x8080 Nois min threshold old + 0x00, // 0x8081 Reserved + 0x04, // 0x8082 Hopping sensor group + 0x6E, // 0x8083 Hopping Seg1 normalize + 0xB9, // 0x8084 Hopping Seg1 factor + 0x00, // 0x8085 Main clock adjust + 0x6A, // 0x8086 Hopping Seg2 normalize + 0xC4, // 0x8087 Hopping Seg2 factor + 0x00, // 0x8088 Reserved + 0x66, // 0x8089 Hopping Seg3 normalize + 0xCF, // 0x808A Hopping Seg3 factor + 0x00, // 0x808B Reserved + 0x62, // 0x808C Hopping Seg4 normalize + 0xDB, // 0x808D Hopping Seg4 factor + 0x00, // 0x808E Reserved + 0x5E, // 0x808F Hopping Seg5 normalize + 0xE8, // 0x8090 Hopping Seg5 factor + 0x00, // 0x8091 Reserved + 0x5E, // 0x8092 Hopping Seg6 normalize + 0x00, // 0x8093 Key1 + 0x00, // 0x8094 Key2 + 0x00, // 0x8095 Key3 + 0x00, // 0x8096 Key4 + 0x00, // 0x8097 Key area + 0x00, // 0x8098 Key touch level + 0x00, // 0x8099 Key leave level + 0x00, // 0x809A Key sens + 0x00, // 0x809B Key sens + 0x00, // 0x809C Key restrain + 0x00, // 0x809D Key restrain time + 0x00, // 0x809E Large gesture touch + 0x00, // 0x809F Reserved + 0x00, // 0x80A0 Reserved + 0x00, // 0x80A1 Hotknot noise map + 0x00, // 0x80A2 Link threshold + 0x00, // 0x80A3 Pxy threshold + 0x00, // 0x80A4 GHot dump shift + 0x00, // 0x80A5 GHot rx gain + 0x00, // 0x80A6 Freg gain + 0x00, // 0x80A7 Freg gain 1 + 0x00, // 0x80A8 Freg gain 2 + 0x00, // 0x80A9 Freg gain 3 + 0x00, // 0x80AA Reserved + 0x00, // 0x80AB Reserved + 0x00, // 0x80AC Reserved + 0x00, // 0x80AD Reserved + 0x00, // 0x80AE Reserved + 0x00, // 0x80AF Reserved + 0x00, // 0x80B0 Reserved + 0x00, // 0x80B1 Reserved + 0x00, // 0x80B2 Reserved + 0x00, // 0x80B3 Combine dis + 0x00, // 0x80B4 Split set + 0x00, // 0x80B5 Reserved + 0x00, // 0x80B6 Reserved + 0x14, // 0x80B7 Sensor CH0 + 0x12, // 0x80B8 Sensor CH1 + 0x10, // 0x80B9 Sensor CH2 + 0x0E, // 0x80BA Sensor CH3 + 0x0C, // 0x80BB Sensor CH4 + 0x0A, // 0x80BC Sensor CH5 + 0x08, // 0x80BD Sensor CH6 + 0x06, // 0x80BE Sensor CH7 + 0x04, // 0x80BF Sensor CH8 + 0x02, // 0x80C0 Sensor CH9 + 0xFF, // 0x80C1 Sensor CH10 + 0xFF, // 0x80C2 Sensor CH11 + 0xFF, // 0x80C3 Sensor CH12 + 0xFF, // 0x80C4 Sensor CH13 + 0x00, // 0x80C5 Reserved + 0x00, // 0x80C6 Reserved + 0x00, // 0x80C7 Reserved + 0x00, // 0x80C8 Reserved + 0x00, // 0x80C9 Reserved + 0x00, // 0x80CA Reserved + 0x00, // 0x80CB Reserved + 0x00, // 0x80CC Reserved + 0x00, // 0x80CD Reserved + 0x00, // 0x80CE Reserved + 0x00, // 0x80CF Reserved + 0x00, // 0x80D0 Reserved + 0x00, // 0x80D1 Reserved + 0x00, // 0x80D2 Reserved + 0x00, // 0x80D3 Reserved + 0x00, // 0x80D4 Reserved + 0x28, // 0x80D5 Driver CH0 + 0x26, // 0x80D6 Driver CH1 + 0x24, // 0x80D7 Driver CH2 + 0x22, // 0x80D8 Driver CH3 + 0x21, // 0x80D9 Driver CH4 + 0x20, // 0x80DA Driver CH5 + 0x1F, // 0x80DB Driver CH6 + 0x1E, // 0x80DC Driver CH7 + 0x1D, // 0x80DD Driver CH8 + 0x0C, // 0x80DE Driver CH9 + 0x0A, // 0x80DF Driver CH10 + 0x08, // 0x80E0 Driver CH11 + 0x06, // 0x80E1 Driver CH12 + 0x04, // 0x80E2 Driver CH13 + 0x02, // 0x80E3 Driver CH14 + 0x00, // 0x80E4 Driver CH15 + 0xFF, // 0x80E5 Driver CH16 + 0xFF, // 0x80E6 Driver CH17 + 0xFF, // 0x80E7 Driver CH18 + 0xFF, // 0x80E8 Driver CH19 + 0xFF, // 0x80E9 Driver CH20 + 0xFF, // 0x80EA Driver CH21 + 0xFF, // 0x80EB Driver CH22 + 0xFF, // 0x80EC Driver CH23 + 0xFF, // 0x80ED Driver CH24 + 0xFF, // 0x80EE Driver CH25 + 0x00, // 0x80EF Reserved + 0x00, // 0x80F0 Reserved + 0x00, // 0x80F1 Reserved + 0x00, // 0x80F2 Reserved + 0x00, // 0x80F3 Reserved + 0x00, // 0x80F4 Reserved + 0x00, // 0x80F5 Reserved + 0x00, // 0x80F6 Reserved + 0x00, // 0x80F7 Reserved + 0x00, // 0x80F8 Reserved + 0x00, // 0x80F9 Reserved + 0x00, // 0x80FA Reserved + 0x00, // 0x80FB Reserved + 0x00, // 0x80FC Reserved + 0x00, // 0x80FD Reserved + 0x00 // 0x80FE Reserved + }; + uint8_t touchGT911Flag = 0; -uint8_t touchPanelEvent = 0; +uint8_t touchEventOccured = 0; struct TouchData touchData; -struct TouchState touchState; void GT911_INT_Change(void) { @@ -43,11 +232,11 @@ uint8_t GT911_Send_Cfg(uint8_t mode) uint8_t i = 0; buf[0] = 0; buf[1] = mode; - for (i = 0; i < sizeof(GT911_Cfg); i++) - buf[0] += GT911_Cfg[i];//check sum + for (i = 0; i < sizeof(TOUCH_GT911_Cfg); i++) + buf[0] += TOUCH_GT911_Cfg[i];//check sum buf[0] = (~buf[0]) + 1; - gt911WriteRegister(GT_CFGS_REG, (uint8_t *) GT911_Cfg, sizeof(GT911_Cfg));// + gt911WriteRegister(GT_CFGS_REG, (uint8_t *) TOUCH_GT911_Cfg, sizeof(TOUCH_GT911_Cfg));// gt911WriteRegister(GT_CHECK_REG, buf, 2);//write checksum return 0; } @@ -303,7 +492,7 @@ void touchPanelDeInit(void) TOUCH_AF_ExtiStop(); } -bool touchPanelInit(void) +bool TouchInit(void) { uint8_t tmp[4] = {0}; @@ -359,9 +548,12 @@ bool touchPanelInit(void) void touchPanelRead() { uint8_t state = 0; - gt911ReadRegister(GT911_READ_XY_REG, &state, 1); - touchPanelEvent = false; + if (!touchEventOccured) + return; + + touchEventOccured = false; + gt911ReadRegister(GT911_READ_XY_REG, &state, 1); if ((state & 0x80u) == 0x00) { // not ready @@ -405,8 +597,12 @@ void touchPanelRead() extern "C" void TOUCH_INT_EXTI_IRQHandler1(void) { if (EXTI_GetITStatus(TOUCH_INT_EXTI_LINE1) != RESET) { - TRACE("TI"); - touchPanelEvent = 1; + touchEventOccured = 1; EXTI_ClearITPendingBit(TOUCH_INT_EXTI_LINE1); } } + +bool touchPanelEventOccured() +{ + return touchEventOccured; +} diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 2b5f7d32c..e556b0106 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -21,9 +21,6 @@ #ifndef _FT5X06_H_ #define _FT5X06_H_ -#include "opentx.h" -#include "touch.h" - #define HAS_TOUCH_PANEL() touchGT911Flag == true bool touchPanelInit(); @@ -31,203 +28,16 @@ void touchPanelDeInit(); extern uint8_t touchGT911Flag; extern uint8_t touchPanelEvent; +extern bool TouchInit( void ); uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len); void gt911ReadRegister(uint16_t reg, uint8_t * buf, uint8_t len); void touchPanelRead(); +bool touchPanelEventOccured(); #define GT911_MAX_TP 5 #define GT911_CFG_NUMER 0x6A -//GT911 param table -const uint8_t GT911_Cfg[] = -{ - GT911_CFG_NUMER, // 0x8047 Config version - 0xE0, // 0x8048 X output map : x 480 - 0x01, - 0x10, // 0x804A Y ouptut max : y 272 - 0x01, - GT911_MAX_TP, // 0x804C Touch number - 0x3C, // 0x804D Module switch 1 : bit4= xy change Int mode - 0x20, // 0x804E Module switch 2 - 0x22, // 0x804F Shake_Count - 0x0A, // 0x8050 Filter - 0x28, // 0x8051 Larger touch - 0x0F, // 0x8052 Noise reduction - 0x5A, // 0x8053 Screen touch level - 0x3C, // 0x8054 Screen touch leave - 0x03, // 0x8055 Low power control - 0x05, // 0x8056 Refresh rate - 0x00, // 0x8057 X threshold - 0x00, // 0x8058 Y threshold - 0x00, // 0x8059 Reserved - 0x00, // 0x805A Reserved - 0x11, // 0x805B Space (top, bottom) - 0x11, // 0x805C Space (left, right) - 0x08, // 0x805D Mini filter - 0x18, // 0x805E Strech R0 - 0x1A, // 0x805F Strech R1 - 0x1E, // 0x8060 Strech R2 - 0x14, // 0x8061 Strech RM - 0x87, // 0x8062 Drv groupA num - 0x29, // 0x8063 Drv groupB num - 0x0A, // 0x8064 Sensor num - 0xCF, // 0x8065 FreqA factor - 0xD1, // 0x8066 FreqB factor - 0xB2, // 0x8067 Panel bit freq - 0x04, - 0x00, // 0x8069 Reserved - 0x00, - 0x00, // 0x806B Panel tx gain - 0xD8, // 0x806C Panel rx gain - 0x02, // 0x806D Panel dump shift - 0x1D, // 0x806E Drv frame control - 0x00, // 0x806F Charging level up - 0x01, // 0x8070 Module switch 3 - 0x00, // 0x8071 Gesture distance - 0x00, // 0x8072 Gesture long press time - 0x00, // 0x8073 X/Y slope adjust - 0x00, // 0x8074 Gesture control - 0x00, // 0x8075 Gesture switch 1 - 0x00, // 0x8076 Gesture switch 2 - 0x00, // 0x8077 Gesture refresh rate - 0x00, // 0x8078 Gesture touch level - 0x00, // 0x8079 New green wake up level - 0xB4, // 0x807A Freq hopping start - 0xEF, // 0x807B Freq hopping end - 0x94, // 0x807C Noise detect time - 0xD5, // 0x807D Hopping flag - 0x02, // 0x807E Hopping flag - 0x07, // 0x807F Noise threshold - 0x00, // 0x8080 Nois min threshold old - 0x00, // 0x8081 Reserved - 0x04, // 0x8082 Hopping sensor group - 0x6E, // 0x8083 Hopping Seg1 normalize - 0xB9, // 0x8084 Hopping Seg1 factor - 0x00, // 0x8085 Main clock adjust - 0x6A, // 0x8086 Hopping Seg2 normalize - 0xC4, // 0x8087 Hopping Seg2 factor - 0x00, // 0x8088 Reserved - 0x66, // 0x8089 Hopping Seg3 normalize - 0xCF, // 0x808A Hopping Seg3 factor - 0x00, // 0x808B Reserved - 0x62, // 0x808C Hopping Seg4 normalize - 0xDB, // 0x808D Hopping Seg4 factor - 0x00, // 0x808E Reserved - 0x5E, // 0x808F Hopping Seg5 normalize - 0xE8, // 0x8090 Hopping Seg5 factor - 0x00, // 0x8091 Reserved - 0x5E, // 0x8092 Hopping Seg6 normalize - 0x00, // 0x8093 Key1 - 0x00, // 0x8094 Key2 - 0x00, // 0x8095 Key3 - 0x00, // 0x8096 Key4 - 0x00, // 0x8097 Key area - 0x00, // 0x8098 Key touch level - 0x00, // 0x8099 Key leave level - 0x00, // 0x809A Key sens - 0x00, // 0x809B Key sens - 0x00, // 0x809C Key restrain - 0x00, // 0x809D Key restrain time - 0x00, // 0x809E Large gesture touch - 0x00, // 0x809F Reserved - 0x00, // 0x80A0 Reserved - 0x00, // 0x80A1 Hotknot noise map - 0x00, // 0x80A2 Link threshold - 0x00, // 0x80A3 Pxy threshold - 0x00, // 0x80A4 GHot dump shift - 0x00, // 0x80A5 GHot rx gain - 0x00, // 0x80A6 Freg gain - 0x00, // 0x80A7 Freg gain 1 - 0x00, // 0x80A8 Freg gain 2 - 0x00, // 0x80A9 Freg gain 3 - 0x00, // 0x80AA Reserved - 0x00, // 0x80AB Reserved - 0x00, // 0x80AC Reserved - 0x00, // 0x80AD Reserved - 0x00, // 0x80AE Reserved - 0x00, // 0x80AF Reserved - 0x00, // 0x80B0 Reserved - 0x00, // 0x80B1 Reserved - 0x00, // 0x80B2 Reserved - 0x00, // 0x80B3 Combine dis - 0x00, // 0x80B4 Split set - 0x00, // 0x80B5 Reserved - 0x00, // 0x80B6 Reserved - 0x14, // 0x80B7 Sensor CH0 - 0x12, // 0x80B8 Sensor CH1 - 0x10, // 0x80B9 Sensor CH2 - 0x0E, // 0x80BA Sensor CH3 - 0x0C, // 0x80BB Sensor CH4 - 0x0A, // 0x80BC Sensor CH5 - 0x08, // 0x80BD Sensor CH6 - 0x06, // 0x80BE Sensor CH7 - 0x04, // 0x80BF Sensor CH8 - 0x02, // 0x80C0 Sensor CH9 - 0xFF, // 0x80C1 Sensor CH10 - 0xFF, // 0x80C2 Sensor CH11 - 0xFF, // 0x80C3 Sensor CH12 - 0xFF, // 0x80C4 Sensor CH13 - 0x00, // 0x80C5 Reserved - 0x00, // 0x80C6 Reserved - 0x00, // 0x80C7 Reserved - 0x00, // 0x80C8 Reserved - 0x00, // 0x80C9 Reserved - 0x00, // 0x80CA Reserved - 0x00, // 0x80CB Reserved - 0x00, // 0x80CC Reserved - 0x00, // 0x80CD Reserved - 0x00, // 0x80CE Reserved - 0x00, // 0x80CF Reserved - 0x00, // 0x80D0 Reserved - 0x00, // 0x80D1 Reserved - 0x00, // 0x80D2 Reserved - 0x00, // 0x80D3 Reserved - 0x00, // 0x80D4 Reserved - 0x28, // 0x80D5 Driver CH0 - 0x26, // 0x80D6 Driver CH1 - 0x24, // 0x80D7 Driver CH2 - 0x22, // 0x80D8 Driver CH3 - 0x21, // 0x80D9 Driver CH4 - 0x20, // 0x80DA Driver CH5 - 0x1F, // 0x80DB Driver CH6 - 0x1E, // 0x80DC Driver CH7 - 0x1D, // 0x80DD Driver CH8 - 0x0C, // 0x80DE Driver CH9 - 0x0A, // 0x80DF Driver CH10 - 0x08, // 0x80E0 Driver CH11 - 0x06, // 0x80E1 Driver CH12 - 0x04, // 0x80E2 Driver CH13 - 0x02, // 0x80E3 Driver CH14 - 0x00, // 0x80E4 Driver CH15 - 0xFF, // 0x80E5 Driver CH16 - 0xFF, // 0x80E6 Driver CH17 - 0xFF, // 0x80E7 Driver CH18 - 0xFF, // 0x80E8 Driver CH19 - 0xFF, // 0x80E9 Driver CH20 - 0xFF, // 0x80EA Driver CH21 - 0xFF, // 0x80EB Driver CH22 - 0xFF, // 0x80EC Driver CH23 - 0xFF, // 0x80ED Driver CH24 - 0xFF, // 0x80EE Driver CH25 - 0x00, // 0x80EF Reserved - 0x00, // 0x80F0 Reserved - 0x00, // 0x80F1 Reserved - 0x00, // 0x80F2 Reserved - 0x00, // 0x80F3 Reserved - 0x00, // 0x80F4 Reserved - 0x00, // 0x80F5 Reserved - 0x00, // 0x80F6 Reserved - 0x00, // 0x80F7 Reserved - 0x00, // 0x80F8 Reserved - 0x00, // 0x80F9 Reserved - 0x00, // 0x80FA Reserved - 0x00, // 0x80FB Reserved - 0x00, // 0x80FC Reserved - 0x00, // 0x80FD Reserved - 0x00 // 0x80FE Reserved -}; - //I2C #define GT_CMD_WR 0X28 #define GT_CMD_RD 0X29