#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); uint16_t getXd1(void); uint16_t getXd2(void); uint16_t getXd3(void); uint16_t getYd1(void); uint16_t getYd2(void); uint16_t getYd3(void); 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(); 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(uint16_t port); };