#include "eeprom.h" #include "mbed.h" class TSC2046 { public: TSC2046(EEPROM* mem, PinName MOSI, PinName MISO, PinName SCK, PinName CS, PinName INT); void GetXY(int32_t* X, int32_t* Y); static int getXd1(); static int getXd2(); static int getXd3(); static int getYd1(); static int getYd2(); static int getYd3(); void setXt1(uint32_t _xt1); void setXt2(uint32_t _xt2); void setXt3(uint32_t _xt3); void setYt1(uint32_t _yt1); void setYt2(uint32_t _yt2); void setYt3(uint32_t _yt3); void setCalibrated(); bool getCalibrated() const; bool DetectTouch(); void coeffCalc(); void GetRawXY(uint16_t* X, uint16_t* Y); private: struct { volatile int32_t cali_A; volatile int32_t cali_B; volatile int32_t cali_C; volatile int32_t cali_D; volatile int32_t cali_E; volatile int32_t cali_F; volatile uint8_t touchIsCalibrated; uint8_t tmp; } touchCoeff; uint32_t xt1; uint32_t xt2; uint32_t xt3; uint32_t yt1; uint32_t yt2; uint32_t yt3; SPI tpPort; DigitalOut tpCS; DigitalIn tpInt; EEPROM* eeprom; uint16_t readValue(char port); };