58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
#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);
|
|
};
|