Интересные цифры
Написал dvf дата Вт, 11/09/2010 - 20:25
Если не трудно, разъясните строки листинга:
y=(getU()-495)/(4105/64); //Вычисляем координаты нажатия
x=(x-400)/(4265/128);
в теме "AVR Touchscreen, сенсорный экран на ATmega8".
64 и 128 понятно, 4105 и 4265 не понятно, хотя близко к 4096 -
результат 12-ти разрядного АЦП (только, вот, откуда он в AVR).
А 495 и 400 ?
»
Давай рассмотрим пример: Есть
Давай рассмотрим пример:
Есть тачсрин, 128 по Х. Есть АЦП, который снимает аналоговый сигнал с оси Х.
Допустим при нажатии в координате Х=0 на АЦП появилось напряжение 2В. Назовем это напряжение Offset
При нажатии в координате х=127 на АЦП напряжение 4В. Назовем его Voltage.
Предположим что напряжение меняется линейно в зависимости от координаты нажатия.
Мы имеем (voltage-offset)/128 вольт/точку без учета оффсета.
Теперь имеем нажатие в случайной точке Х. Которую необходимо найти. При этом мы имеем на АЦП temp_voltage.
Нетрудно вычислить координату нажатия X=(temp_voltage-offset)/((voltage-offset)/128). Думаю теперь понятен смысл чисел, про которые спрашивалось. Это ручная калибровка, я промерял сколько вольт при нажатии на границах тачскрина, а дальше мысли изложенные выше.
Для оси У все аналогично.
PS: надо будет чуток модифицировать статью, добавить рассуждения и автоматическую калибровку. Которая будет просить юзера нажать справа/слева/сверху/внизу и на основании этой калибровки будет производить дальнейшие расчеты.
Ценная мысль )
***PS: надо будет чуток модифицировать статью, добавить рассуждения и автоматическую калибровку. Которая будет просить юзера нажать справа/слева/сверху/внизу и на основании этой калибровки будет производить дальнейшие расчеты.***
Вероятно, калибровку с некоторым отступом от углов LCD?
И спасибо за разъяснение.
Угу, нарисовано 4 крестика по
Угу, нарисовано 4 крестика по углам, и надо в них тыцнуть по очереди.