Files
f746_mini_apl/tsc2046.h
2021-11-12 05:46:14 +03:00

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