|
qtouch library |
|
|
|
Mar 22 2011, 19:28
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
Цитата(MAGician @ Mar 22 2011, 21:44)  Народ, кто использовал qtouch library? Не могу разобраться какие библиотеки подключать. Тестовые примеры, какие-то сильно замудреные... Хочу сделать обычный сенсорный выключатель на ATmega8. Мне кажется там разжёвано до безобразия, есть таблицы - какая либа к какому МК и каким сенсорам (файл Library_Selection_Guide.xls). Я пробовал QTouch и с GCC и с IAR на Mega16 и Mega32. IAR даёт код раза в 1,5 компактнее. И в том и другом случае работает как часы.
|
|
|
|
|
Mar 22 2011, 20:05
|

Участник

Группа: Участник
Сообщений: 69
Регистрация: 28-11-06
Из: Москва
Пользователь №: 22 847

|
Не могу понять откуда берется такая ошибка. Код Error 1 constant value required D:/Atmel_QTouch_Libraries_4.3/Generic_QTouch_Libraries/AVR_Tiny_Mega_XMega/QTouch/common_files/qt_asm_tiny_mega.s 66 1 avr5g1_qt_example Ссылается на эти строчки: Код and r19, r25 out REG( DDR, SNS1 ), r19 in r19, REG( DDR, SNSK1 ) and r19, r25 В свойствах компилятора прописано: SNSK1=A SNS1=B
|
|
|
|
|
Mar 23 2011, 08:01
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
[quote name='MAGician' date='Mar 22 2011, 23:05' post='903947'] Не могу понять откуда берется такая ошибка. Код Error 1 constant value required D:/Atmel_QTouch_Libraries_4.3/Generic_QTouch_Libraries/AVR_Tiny_Mega_XMega/QTouch/common_files/qt_asm_tiny_mega.s 66 1 avr5g1_qt_example ... Я сейчас попробовал перекомпилировать пример avr5g1_qt_example в AVR Studio 4.18 - ошибок нет. Поменял в файле touch_qt_config.h SNS1 и SNSK1 как у вас - тоже проблем не возникло. Видимо, проблема в компиляторе или настройках среды.
|
|
|
|
|
Mar 24 2011, 05:09
|

Участник

Группа: Участник
Сообщений: 69
Регистрация: 28-11-06
Из: Москва
Пользователь №: 22 847

|
Цитата(ANT @ Mar 23 2011, 11:01)  Я сейчас попробовал перекомпилировать пример avr5g1_qt_example в AVR Studio 4.18 - ошибок нет. Поменял в файле touch_qt_config.h SNS1 и SNSK1 как у вас - тоже проблем не возникло. Видимо, проблема в компиляторе или настройках среды. Обычные примеры у меня то-ж компилируются без ошибок, но как только я меняю МК на тот который мне нужен (ATmega88P), начинают валиться такие ошибки. Хотя в документации написано что этот МК поддерживается библиотекой libavr4g1-4qt-k-0rs.a. Причем неважно какие порты выставляю в параметрах SNSK1, SNS1. В чем проблемы не пойму, уже всю голову сломал.....
|
|
|
|
|
Mar 24 2011, 08:11
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
Цитата(MAGician @ Mar 24 2011, 08:09)  Обычные примеры у меня то-ж компилируются без ошибок, но как только я меняю МК на тот который мне нужен (ATmega88P), начинают валиться такие ошибки. Хотя в документации написано что этот МК поддерживается библиотекой libavr4g1-4qt-k-0rs.a. Причем неважно какие порты выставляю в параметрах SNSK1, SNS1. В чем проблемы не пойму, уже всю голову сломал.....  В таблице указано: MCU Ports available for Qtouch ATmega88P B,C,D но в Атмеловском примере по умолчанию SNSK1=A, поэтому компилятор и ругается. Итак, при переходе с ATmega8515, который указан в примере, на Atmega88P нужно в ключах определить -ВSNSK1=B. После компиляции ошибка исчезает, но появляются новые: ругань на TIMSK и SFIOR. Это опять же связано с различием процессоров. Правим строчки: /* enable timer ISR */ // TIMSK |= (1u << OCIE1A); TIMSK0 |= (1u << OCIE1A); /* disable pull-ups */ // SFIOR |= (1u << PUD); MCUCR |= (1u << PUD); - и компиляция успешна. Возможно, остались и другие проблемы, дерзайте
|
|
|
|
|
Mar 24 2011, 19:58
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
Цитата(silverio @ Mar 24 2011, 22:51)  Вопрос к АНТ - пробовали Wheel реализовывать при помощи библиотеки от Atmel? Нет - только кнопки.
|
|
|
|
|
Mar 25 2011, 04:59
|

Участник

Группа: Участник
Сообщений: 69
Регистрация: 28-11-06
Из: Москва
Пользователь №: 22 847

|
Цитата(ANT @ Mar 24 2011, 11:11)  - и компиляция успешна. Возможно, остались и другие проблемы, дерзайте  Спасибо большое, разобрался, теперь буду пробовать все это в железе реализовать =)
|
|
|
|
|
Jul 18 2011, 10:10
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
Цитата(smk @ Jul 17 2011, 22:57)  А QMatrix не пробовали? Вроде бы все понятно и как-бы разжевано, но либо не компилится либо не работает. Делал макет. ИАР после компиляции проигнорировал порт для X-выводов не смотря на явное указание. Если выводы правильные (GCC) то не выдает результат на для slider на для кнопок. В конечном итоге мне нужен слайдер из 8 каналов. Tiny961A. Прошу помочь. Спасибо. Не пробовал  . Есть ещё практический момент: в эксплуатации Qtouch кнопок по сравнению с тактильной клавиатурой есть неудобства - случайное прикосновение вызывает срабатывание; высокие требования к источнику питания (дешёвые USB-зарядки не годятся, от них Qtouch с ума сходит).
|
|
|
|
|
Jul 18 2011, 18:01
|

Участник

Группа: Участник
Сообщений: 48
Регистрация: 14-06-09
Из: Киев
Пользователь №: 50 273

|
To SMK Я недавно начал работать с QMATRIX, использую IAR. Сделал отладочную плату: 3-button, 1- wheel, Atmega 168 - проект компилируется нормально, использовал v3g3_qm_example_iar за основу. На данный момент работают только 3-button  , wheel - в процессе
|
|
|
|
|
Jul 19 2011, 07:07
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(silverio @ Jul 18 2011, 21:01)  To SMK Я недавно начал работать с QMATRIX, использую IAR. Сделал отладочную плату: 3-button, 1- wheel, Atmega 168 - проект компилируется нормально, использовал v3g3_qm_example_iar за основу. На данный момент работают только 3-button  , wheel - в процессе  А размер кода совпал с табличным? debug включен или выключен?
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jun 4 2012, 20:50
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-03-08
Из: Минск
Пользователь №: 35 707

|
Цитата(ANT @ Mar 22 2011, 22:28)  Мне кажется там разжёвано до безобразия, есть таблицы - какая либа к какому МК и каким сенсорам (файл Library_Selection_Guide.xls). Я пробовал QTouch и с GCC и с IAR на Mega16 и Mega32. IAR даёт код раза в 1,5 компактнее. И в том и другом случае работает как часы. у меня как часы не работает... реализую qmatrix на Atmega16A во всех даташитах разобрался вроде, действительно все разжевано, просто прочитать надо все настройки нашел, все настроил под свои нужды. Делал на основе примера m16_qm_example_gnu. У меня конфигурация: 5 Х линий 4 У линии, 19 кнопок. Кнопки развел на стеклотекстолите по рекомендациям Атмела. Дебаг в библиотеке не использую, использую экранчик двухстрочный, на который вывожу необходимую информацию. Обычно это: qt_measure_data.channel_signals[] qt_measure_data.channel_references[] qt_get_sensor_delta() qt_measure_data.qt_touch_status.sensor_states[] собственно оно же и в дебаге выводится Так вот данные какие-то чушь получаются. Кнопки не срабатывают. Данные конечно меняются, когда я палец прикладываю или руку, но меняются совершенно беспорядочно и какие-то неуместные значения показывает. Читал и рекомендации QT and QM sensitivity tuning, менял значения, экспериментировал...но все тщетно Осциллографа жаль нету сейчас дома. Не знаю как отладить эту всю бороду. Может кто подскажет, наведет на мысли...=)
|
|
|
|
|
Jun 10 2012, 18:23
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-03-08
Из: Минск
Пользователь №: 35 707

|
вобщем немного разобрался...на осциллографе увидел, что пачки импульсов отправляются и вроде даже видно, что конденсатор заряжается. Но все равно не работает оно у меня. Во-первых: когда я пытаюсь поменять burst_lengths - просто вообще исчезают эти пачки. Меняю как указано в qtouch library user guide. Как мне все-таки поменять эти значения? Во-вторых: когда пытаюсь добавить в код примера свой код, там где написано /*Time critical host application code goes here*/ или /* Time Non-critical host application code goes here */, тоже напрочь замолкает микроконтроллер или время между пачками резко уменьшается. При чем кода я добавляю одну строчку, не важно чего, например инициализацию какой-нибудь неиспользуемой ноги(настраиваю на выход), чтобы индицировать нажатия. Мозг уже отказывает думать, потому что долбусь этими сенсорами уже не первый день. Подскажите, если кто знает...
может можно кому-то конкретно, кто разбирался, позадавать вопросы по поводу этой qtouch library?
|
|
|
|
|
Mar 21 2014, 01:23
|
Знающий
   
Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422

|
Цитата(comper @ Jun 10 2012, 21:23)  вобщем немного разобрался...на осциллографе увидел, что пачки импульсов отправляются и вроде даже видно, что конденсатор заряжается. Но все равно не работает оно у меня. Во-первых: когда я пытаюсь поменять burst_lengths - просто вообще исчезают эти пачки. Меняю как указано в qtouch library user guide. Как мне все-таки поменять эти значения? Во-вторых: когда пытаюсь добавить в код примера свой код, там где написано /*Time critical host application code goes here*/ или /* Time Non-critical host application code goes here */, тоже напрочь замолкает микроконтроллер или время между пачками резко уменьшается. При чем кода я добавляю одну строчку, не важно чего, например инициализацию какой-нибудь неиспользуемой ноги(настраиваю на выход), чтобы индицировать нажатия. Мозг уже отказывает думать, потому что долбусь этими сенсорами уже не первый день. Подскажите, если кто знает...
может можно кому-то конкретно, кто разбирался, позадавать вопросы по поводу этой qtouch library? Здравствуйте! Сталкнулся с похожей проблемой, но решения представленные выше не помогают У меня IAR 6.12, Qtouch lib 4, atmega168PA Использую libv3g3-8qt-k-2rs.r90 и пример v3g3_qt_example При компиляции застреваю на qt_asm_tiny_mega.S с ошибками "Undefined symbol DDRA и Undefined symbol" В файле touch_qt_config.h, исправил с порта D на С #ifndef SNS1 #define SNS1 C #endif #ifndef SNSK1 #define SNSK1 B #endif в файле touch_api.h исправил #define JOIN( x, y ) x ## y #define JOIN1( A, B, C ) A ## B ## C на #define JOIN( x, y ) x ## y #define JOIN1( B, C )B ## C Но все равно проблемы с портом А остаются Подскажите кто знает как скомпилировать пример v3g3_qt_example для atmega168PA Заранее благодарен
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|