diff --git a/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.cpp b/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.cpp index 60ec65a..057939c 100644 --- a/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.cpp +++ b/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.cpp @@ -17,9 +17,13 @@ FT6206::FT6206() { touches = 0; } @returns True if an FT6206 is found, false on any failure */ /**************************************************************************/ -bool FT6206::begin(uint8_t thresh) { - Wire.begin(); +// bool begin(uint8_t thresh = FT62XX_DEFAULT_THRESHOLD, uint16_t width, uint16_t height, bool flip ); +bool FT6206::begin(uint16_t width, uint16_t height, bool flip, uint8_t thresh) { + Wire.begin(); + _width = width; + _height = height; +_flip = flip; #ifdef FT6206_DEBUG Serial.print("Vend ID: 0x"); Serial.println(readRegister8(FT62XX_REG_VENDID), HEX); @@ -86,7 +90,14 @@ TS_Point FT6206::getPoint(uint8_t n) { if ((touches == 0) || (n > 1)) { return TS_Point(0, 0, 0); } else { - return TS_Point(touchX[n], touchY[n], 1); + if(_flip) + { + return TS_Point(_width - touchX[n], _height - touchY[n], 1); + } + else + { + return TS_Point(touchX[n], touchY[n], 1); + } } } diff --git a/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.h b/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.h index d6d092e..cdeaba9 100644 --- a/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.h +++ b/reflow_plate_fw/lib/ft6206_touch/ft6206_touch.h @@ -56,13 +56,15 @@ public: class FT6206 { public: FT6206(void); - bool begin(uint8_t thresh = FT62XX_DEFAULT_THRESHOLD); + bool begin(uint16_t width, uint16_t height, bool flip = false, uint8_t thresh = FT62XX_DEFAULT_THRESHOLD); uint8_t touched(void); TS_Point getPoint(uint8_t n = 0); // void autoCalibrate(void); private: + uint16_t _width, _height; + bool _flip; void writeRegister8(uint8_t reg, uint8_t val); uint8_t readRegister8(uint8_t reg); diff --git a/reflow_plate_fw/src/lcd.cpp b/reflow_plate_fw/src/lcd.cpp index e44cc12..0574471 100644 --- a/reflow_plate_fw/src/lcd.cpp +++ b/reflow_plate_fw/src/lcd.cpp @@ -268,6 +268,7 @@ void prepButtons(void) } } +#if defined(TOUCH_CS) void touch_calibrate() { uint16_t calData[5]; @@ -300,6 +301,7 @@ void touch_calibrate() while (1) ; } +#endif void updateGUIButtons(void) { @@ -355,8 +357,8 @@ void updateGUIButtons(void) // ------------------------------------------------------------------------- void initTouchScreen(void) { - ts.begin(); - if (!ts.begin(40)) + //ts.begin(); + if (!ts.begin(tft.width(), tft.height(), true, 40)) { Serial.println("Unable to start touchscreen."); } @@ -370,12 +372,14 @@ void initLCD(void) { tft.init(); - tft.setRotation(2); + tft.setRotation(TFT_ROTATION); tft.setTextFont(2); tft.fillScreen(TFT_BLACK); tft.invertDisplay(false); + #if defined(TOUCH_CS) //touch_calibrate(); tft.setTouch(calData); + #endif initTouchScreen(); diff --git a/reflow_plate_fw/src/lcd.h b/reflow_plate_fw/src/lcd.h index 9dda2e3..6610b76 100644 --- a/reflow_plate_fw/src/lcd.h +++ b/reflow_plate_fw/src/lcd.h @@ -6,6 +6,7 @@ #define TFT_WIDTH 240 #define TFT_HEIGT 320 #define TFT_DEFAULT_R 4 +#define TFT_ROTATION 0 //2 = upsidedown #define LCD_INTERVAL 100