Add XPT2046 calibration functions (#15140)
This commit is contained in:
parent
cff502c6d4
commit
85f0556118
2 changed files with 12 additions and 1 deletions
|
@ -135,4 +135,12 @@ uint16_t XPT2046::getInTouch(const XPTCoordinate coordinate) {
|
||||||
return (data[1] + data[2]) >> 1;
|
return (data[1] + data[2]) >> 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool XPT2046::getTouchPoint(uint16_t &x, uint16_t &y) {
|
||||||
|
if (isTouched()) {
|
||||||
|
x = getInTouch(XPT2046_X);
|
||||||
|
y = getInTouch(XPT2046_Y);
|
||||||
|
}
|
||||||
|
return isTouched();
|
||||||
|
}
|
||||||
|
|
||||||
#endif // TOUCH_BUTTONS
|
#endif // TOUCH_BUTTONS
|
||||||
|
|
|
@ -42,8 +42,11 @@ class XPT2046 {
|
||||||
public:
|
public:
|
||||||
static void init(void);
|
static void init(void);
|
||||||
static uint8_t read_buttons();
|
static uint8_t read_buttons();
|
||||||
private:
|
bool getTouchPoint(uint16_t &x, uint16_t &y);
|
||||||
static bool isTouched();
|
static bool isTouched();
|
||||||
|
inline void waitForRelease(void) { while (isTouched()) { /* nada */ } }
|
||||||
|
inline void waitForTouch(uint16_t &x, uint16_t &y) { while (!getTouchPoint(x, y)) { /* nada */ } }
|
||||||
|
private:
|
||||||
static uint16_t getInTouch(const XPTCoordinate coordinate);
|
static uint16_t getInTouch(const XPTCoordinate coordinate);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in a new issue