Здравствуйте. Нужна помощь в калибровке резистивного тачскрина 7 дюймов. У кого есть опыт, помогите разобраться, в чём ошибка. Тачскрин опрашиваю через XPT2046, мк STM32. Бьюсь над проблемой уже 3-ю неделю.
Немного истории и суть проблемы: Вначале проект был на LCD 3.2 дюйма (разрешение 320 x 240). Калибровка была по 3-м точкам. Работало идеально, хоть от пальца, хоть от стилуса.
Дальше проект перешёл на LCD 5 дюймов (разрешение 800 x 480). Возникло 2 проблемы: 1-ая это калибровки по 3-м точкам стало не хватать, решение - сделал калибровку по 9-ти точкам (чтоб больше не возвращаться к этому вопросу); 2-ая это пришлось учитывать степень нажатия на экран, т.е. читать z1 и вводить поправочный коэффициент для разных областей экрана (хватило 4-х областей). Стало работать тоже идеально. И думал, что вопрос закрыт.
Дальше проект перешёл на LCD 7 дюймов (разрешение 800 x 480) и тут с тачскрином застрял. Он не калибруется должным образом. Чем дальше удаляться от центра экрана, тем курсор имеет большую погрешность (калибровка по 9-ти точкам), по разным краям разную. Причём тачскрин по краям имеет большой разброс сопротивления, если считывать код АЦП, то разница составляет от 100..300 единиц минимум по одной оси. Силу нажатия нужно учитывать ещё больше, для этого снял в калибровочных точках координату z1 и считаю, какая должна быть z1 для каждой координаты. Но всё это не даёт хороший результат.
Подключал 5-ти и 7-ми дюймовый экран к GPS навигатору, шлейфы у них одинаковые, на навигаторе WinCE,работают абсолютно одинаково, с одной и той же калибровкой. Но там не отображается курсор, но в пиктограммы всё чётко попадает, лишь на совсем крайних точках нужно больше давить на экран. На навигаторе калибровка по 5-ти точкам.
|