Освоєння stm32f103ve tft lcd touch screen (частина 4)

Калібрації екрану потрібна для того, щоб значення координат сенсорного екрану збігалися зі значеннями координат LCD. Можна виконати прості математичні операції і більш-менш привести значення у відповідність. Але це не є точно, а ще кожен раз доведеться міняти програму під окреме утройство. А якщо сенсорний екран приклеєний з перекосом, тоді тут простими операціями не впоратися.

Освоєння stm32f103ve tft lcd touch screen (частина 4)

Алгоритм роботи при роботі з сенсорним екраном простий:
1. Для отримання координат з контролера сенсорного екрану (Xt, Yt)
2. Приведення координат за допомогою рівнянь (Xd, Yd)

Освоєння stm32f103ve tft lcd touch screen (частина 4)

Коефіцієнти A, B, C, D, E, F потрібно вирахувати за допомогою функції калібрації. Будемо вираховувати за трьома точкам.

Освоєння stm32f103ve tft lcd touch screen (частина 4)

Ставимо по черзі 3 точки як показано на малюнку і зберігаємо отримані координати сенсорного екрану. Важливо виводити точки на екран по черзі, щоб користувач не переплутав.

Після того, як у нас є координати дисплея і сенсорного екрану для трьох точок, можна вирахувати коефіцієнти калібрації.

Освоєння stm32f103ve tft lcd touch screen (частина 4)

Після вираховування координати можна зберегти в пам'ять (на жаль, у STM32F103VE немає EEPROM) і використовувати після виключення, а калібрації робити тільки коли це потрібно.

Тепер програма (багато коду):

RESCALE_FACTOR потрібен, щоб не зберігати коефіцієнти у вигляді числа double.

Тепер калібраціонние коефіцієнти в пам'яті, виконуємо обчислення реальних координат за допомогою функції:

Отримуємо реальні координати дисплея і можемо відобразити у вигляді пікселя або кола.

Дякуємо за увагу.
Якщо кому потрібен повний архів з проектом, пишіть в личку.