Почитав описание работы хардварных тач-контроллеров, немного доработал программу.
Вкратце смысл: вместо одного считывания берём серию последовательных считываний (по каждой координате отдельно, разумеется), затем из полученного массива вычисляем наиболее часто встречающееся значение (не среднее, а именно наиболее частое!). Это позволяет отсеять случайные пики/помехи. Я сделал 10 считываний, это можно изменить (константа bfs). Но бОльшие значения не улучшают результат, а только замедляют работу программы.
В результате этих изменений удалось полностью избавиться от дрыганья движков на эквалайзере плеера. Прокрутка вверх/вниз тоже теперь не дёргается. В граф. редакторе горизонтальное перемещение пера теперь рисует прямую линию.
В прошивке оставил нажатие в режиме винды: у меня на Android оно отрабатывается без проблем.
Изменения коснулись только файла restouch.c. В аттаче новый .hex файл и изменённый исходник.
|