murmur 0 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба Хочется поточнее проверить координаты нажатий. Палец имеет слишком больную площадь. Даже женский. У соседа есть хомяк, но..... боюсь что эта идея не понравится ни соседу, ни хомяку..... Что-нибудь способно оказывать на экран такое же воздействие, что и палец? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба 44 минуты назад, murmur сказал: Что-нибудь способно оказывать на экран такое же воздействие, что и палец? Называется стилус для емкостных сенсоров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 26 февраля, 2020 Опубликовано 26 февраля, 2020 · Жалоба С одной стороны... уже не надо. Потыкав стало понятно, что в калибровке, в общем-то он не нуждается, но..... Я писала в соседней теме о проблемах с тачскрином, там оказался горелый контроллер. Так вот, заказав новый, я с удивлением обнаружила, что он, с точно такой же маркировкой, выдает 800х480 точек. Я никогда не работала раньше с емкостными и наивно полагала, что экран будет просто выдвавать квадратное множество 256х256, которое нужно просто отмасштабировать. Так вот проблему то я решила - отмасштабировала 800х480 в нужные мне 1024х600. Точность устраивает. Но все равно что-то гложет. Эти контроллеры (FT5316) их как-то перепрошивать надо под нужное разрешение? Ибо в даташите я не нашла, чтобы разрешение можно было настраивать при инициализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба 11 hours ago, murmur said: Ибо в даташите я не нашла, чтобы разрешение можно было настраивать при инициализации В appnote (Application Note for FT5x16 CTPM) есть некие регистры ID_G_MAX_X/ID_G_MAX_Y. Не оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба 3 hours ago, esaulenka said: В appnote (Application Note for FT5x16 CTPM) есть некие регистры ID_G_MAX_X/ID_G_MAX_Y. Не оно? Похоже на то. Эти регистры кстати R/W. Но в библотеке, с которой я работаю (подсунутой мне калокубом) нет обращения к этим регистрам. Может быть конечно 800х480 это згачение по умолчанию, но в даташите об этом ни слова. Хотя для других регистров дефолтные згаченря указаны. Что ж, попробую пописАть в эти регистры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 27 февраля, 2020 Опубликовано 27 февраля, 2020 · Жалоба 4 часа назад, murmur сказал: Но в библотеке, с которой я работаю (подсунутой мне калокубом) нет обращения к этим регистрам. Круто! А в этой библиотеке наверняка есть функции I2C_Write I2C_Read? Ну или подобные, так в чем проблема записать и прочитать по явно известным адресам? 4 часа назад, murmur сказал: Может быть конечно 800х480 это згачение по умолчанию Я же писал в той теме, что контроллеры могут быть прошиты на производстве значениями под конкретное стекло, которое может отличатся от вашего... Можно попробовать изменить это записью в регистры указанные выше, но не факт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 27 февраля, 2020 Опубликовано 27 февраля, 2020 (изменено) · Жалоба 3 hours ago, mantech said: так в чем проблема записать и прочитать по явно известным адресам? В чем проблема мой пост повнимательней почитать? Попробую по иному объяснить. В библиотеке, которая работает и выдает координаты 0-800, 0-480, нет обращения к указанным выше регистрам. А посему вызывает удивление, что тачскрин к моменту запуска уже настроен на эти параметры, а в даташите не сказано, что эти регистры имеют какое-либо значение по умолчанию. Я разве писала, что мне проблема внести что-то в регистры? Просто удивила наблюдаемая картина. Изменено 27 февраля, 2020 пользователем murmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 28 февраля, 2020 Опубликовано 28 февраля, 2020 · Жалоба 12 часов назад, murmur сказал: В чем проблема мой пост повнимательней почитать? А мой? "Я же писал в той теме, что контроллеры могут быть прошиты на производстве значениями под конкретное стекло" - какое это должно "вызывать удивление", если я прямо об этом писал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 28 февраля, 2020 Опубликовано 28 февраля, 2020 (изменено) · Жалоба Это какая-то, извините, жопа.... XH=TS_IO_Read(TS_I2C_ADDRESS,0x98); XL=TS_IO_Read(TS_I2C_ADDRESS,0x99); YH=TS_IO_Read(TS_I2C_ADDRESS,0x9A); YL=TS_IO_Read(TS_I2C_ADDRESS,0x9B); выдает 0x04, 0x00 (1024) и 0x02, 0x58 (600). При этом координаты в крайних точках экрана выдает 800 и 480. Подтверждается практикой ибо приложение нормально работает только так *X = 1024-(coord*(1024/800)); *Y = 600-(coord*(600/480)); Уточню, что у меня. Изначально на buydisplay.com был куплен дисплей 1024х600 с тачскрином в комплекте (комплектовал продавец). Потом я заказала 800х480+тачскрин, продавец не только скомплектовал, но и наклеил. Перепаять контроллера я сочла более простым и безопасным делом, чем отдирать и переклеивать панели. Может так быть, что отличаются не только контроллеры, но и сами дисплеи? То есть контроллер имея в регистрах 1024х600, будучи посажен на не подходящий дисплей, искренне думает что работает в другой "системе координат"? Наверное это все таки не те регистры. Ибо вот такое издевательство TS_IO_Write(TS_I2C_ADDRESS,0x98,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x99,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x9A,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x9B,0x50); XH=TS_IO_Read(TS_I2C_ADDRESS,0x98); XL=TS_IO_Read(TS_I2C_ADDRESS,0x99); YH=TS_IO_Read(TS_I2C_ADDRESS,0x9A); YL=TS_IO_Read(TS_I2C_ADDRESS,0x9B); действительно записывает по указанным адресам 0x50, но на показаниях панели это не сказывается. 8 hours ago, mantech said: А мой? "Я же писал в той теме, что контроллеры могут быть прошиты на производстве значениями под конкретное стекло" - какое это должно "вызывать удивление", если я прямо об этом писал? Простите, в голову не пришло, что команда записи по i2C может писать в EEPROM. То есть, я даже не рассчитывала на такое удобство. Я думала, что регистры, с которыми работает эта команда, есть суть оперативная память и их нужно инициализировать каждый раз. А вот чтобы изменить какие-то базовые настройки нужно плясать с бубном. Приятно было ошибиться. Изменено 28 февраля, 2020 пользователем murmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 28 февраля, 2020 Опубликовано 28 февраля, 2020 · Жалоба 31 минуту назад, murmur сказал: что команда записи по i2C пишет в EEPROM. Там все сложнее, МС по сути микроконтроллер со встроенной памятью программ, есть фирмварь, которая заливается во флеш или ром, не помню, что у него там, в ней кроме кода есть блок данных, которые при старте прописываются в регистры, поэтому в них не 0 или FF, а вполне осмысленные значения. По шине можно прописывать другие, а можно, если все устраивает, и ничего не писать, как я делаю. Мне проще задать внешнее преобразование координат, чем раскуривать каждый новый контроллер на предмет того, чего они там понаписали по умолчанию. Как правило, точность подобных тачей не лучше +- 3пикселя, а значит, если не работать с дисплеями бешеного разрешения, обычного преобразования координат из 800х480 вполне хватает для дисплея 1366х768, а больше мне и не надо. 37 минут назад, murmur сказал: выдает 0x04, 0x00 (1024) и 0x02, 0x58 (600). При этом координаты в крайних точках экрана выдает 800 и 480. Контроллер емкостного тача - довольно сложное устройство, подразумеваю, там недостаточно изменить только эти 2 регистра, возможно кол-во сегментных линий не совпадает или внутренний преобразователь ошибается в расчетах, есть какие-то еще коэффициенты... Вообщем по этому и решил не связываться, о чем написал выше... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться