Files
f746_mini_apl/tsc2046.h

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);
};