Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45/M10
[9m10] резистивный тачскрин
Jury093
Добавлено 22.02.2013 23:41
0
Сообщение: 1
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
собственно, прикрутил одно к другому..
экран MTF-T070ACSLP-LB, 7", резистивный 4-х проводный тач
4 проводка на разъем экрана, туда же на 40 контакт (TS4) пуллдаун на землю (errata, 100-250kOm)..
атымельский драйвер оказался "кривой" с т.з. libts..
пришлось поправить:
Код
8<-------------------------------------------
diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c
index 3c24783..27ac912 100644
--- a/drivers/input/touchscreen/atmel_tsadcc.c
+++ b/drivers/input/touchscreen/atmel_tsadcc.c
@@ -134,6 +134,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
input_report_key(input_dev, BTN_TOUCH, 0);
ts_dev->bufferedmeasure = 0;
+ input_report_abs(input_dev, ABS_PRESSURE, 0);
input_sync(input_dev);
} else if (status & ATMEL_TSADCC_PENCNT) {
@@ -158,6 +159,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
input_report_abs(input_dev, ABS_X, ts_dev->prev_absx);
input_report_abs(input_dev, ABS_Y, ts_dev->prev_absy);
input_report_key(input_dev, BTN_TOUCH, 1);
+ input_report_abs(input_dev, ABS_PRESSURE, 7500);
input_sync(input_dev);
} else
ts_dev->bufferedmeasure = 1;
@@ -256,6 +258,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
__set_bit(EV_ABS, input_dev->evbit);
input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);
input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);
+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15000, 0, 0);
input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
8<-------------------------------------------

взято отсюда

в билдрутовой не пробовал, но для дебьяна пришлось пересобирать тачевые утилиты.. с коррекцией
Код
/* if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&
(version == EV_VERSION) &&
(ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&
(bit & (1 << EV_ABS)) &&
(ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&
(absbit & (1 << ABS_X)) &&
(absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {
fprintf(stderr, "selected device is not a touchscreen I understand\n");
return -1;
}*/

иначе не взлетало..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.02.2013 16:33 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Т.е. с этим патчем у тебя встроенный контроллер тачскрина нормально стал работать (т.е. от запуска ts_test к запуску не добавляет случайное смещение по координатам)?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.02.2013 16:58 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Т.е. с этим патчем у тебя встроенный контроллер тачскрина нормально стал работать (т.е. от запуска ts_test к запуску не добавляет случайное смещение по координатам)?

что значит "случайное"?
сейчас 4 раза подряд запустил ts_test - куда зубочисткой тыкаю, там и появляется квадратик с перекрестьем, имхо +/-5 пикселей "на глаз", ибо измерить нечем..
и эти два фикса хотя бы запускают подсистему тача, т.к. без правки в драйвере утилиты libts просто игнорировали эвенты..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.02.2013 20:02 Редактировалось 23.02.2013 20:03 Сообщение: 4
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Эта тема на форуме возникала, при использовании "штатного" драйвера встроенного контроллера тасчкрина ts_test получает случайное постоянное смещение по координатам и при этом изменяется от запуска к запуску ts_test ...
Я озачачивался и обнаружил, что эффект возникает в тот момент когда начинается обращение к фреймбуферу ...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.02.2013 20:49 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
не-а, я такого не наблюдаю.. раз 10 перезапустил ts_test..
а насколько большое у тебя получалось смещение? в пикселях или миллиметрах - примерно?
кстати, может у нас разное представление о точности.. меня, например, вполне устраивает точность для попадания пальцем в виртуальную кнопку, а работа стилусом на такой площади не требуется..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 24.02.2013 09:59 Редактировалось 24.02.2013 09:59 Сообщение: 6
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Понятно ...
Я говорил не о шуме, когда ко время нажатия перекрестье скачет, а о стабильном смещении по координатам, например, на сантиметр вниз и в лево и т.п.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 24.02.2013 11:09 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
в ts_test такого точно не вижу - куда жму, там и отклик..
сейчас пересобираю QT для поддержки тача, посмотрю на поведение и отпишусь..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
AlexN
Добавлено 25.02.2013 07:30 Сообщение: 8
AlexN
0

Пункты: 2942
Регистрация: 03.03.2011
"зубочистка" - это облегченный режим для драйвера. У панели (как мне представляется после долгого разглядывания осциллограммок) есть нюанс - при надавливании на оную пальцем сопротивление точ-панели устаканивается довольно долго, причем в зависимости от силы нажатия. Возможная причина - довольно большое переходное сопротивление при контактировании слоев точ-панели между собой. Зубочистка нивелирует этот недостаток.

Хорошим критерием работоспособности будет плавное и несильное надавливание пальцем, и чтоб при этом координати "не врали".
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 25.02.2013 22:02 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
все ниженаписанное исключительно имхо, на основе личного опыта пользователя..
к резистивному тачу понятие "плавное и несильное" слабоприменимо..
в маленьких экранах (3.5") только стилус (Pilot III, Handera, Garmin)
в больших (10") только стилус для точных движений (ноут Фудж 800х600) или палец (для специально отрисованных кнопок в промышленном приборе 8")
7" - ни то ни сё, и мне проще тыкать в него жесткой частью пальца, а не давить подушечкой..
пересобралось qt с поддержкой тача, компильнул демку dials - 8 регуляторов, все крутятся как и положено.. если бы был дрейф с координатами, то сразу бы почувствовал..
примерно вот такое, но 16:9

title

приложение Калькулятор тоже калькулирует..
впрочем, если что будет не так с т.з. ухода точности - отпишу..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45/M10