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