Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: qtouch library
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
MAGician
Народ, кто использовал qtouch library?
Не могу разобраться какие библиотеки подключать. Тестовые примеры, какие-то сильно замудреные...
Хочу сделать обычный сенсорный выключатель на ATmega8.
ANT
Цитата(MAGician @ Mar 22 2011, 21:44) *
Народ, кто использовал qtouch library?
Не могу разобраться какие библиотеки подключать. Тестовые примеры, какие-то сильно замудреные...
Хочу сделать обычный сенсорный выключатель на ATmega8.

Мне кажется там разжёвано до безобразия, есть таблицы - какая либа к какому МК и каким сенсорам (файл Library_Selection_Guide.xls). Я пробовал QTouch и с GCC и с IAR на Mega16 и Mega32. IAR даёт код раза в 1,5 компактнее. И в том и другом случае работает как часы.
MAGician
Не могу понять откуда берется такая ошибка.
Код
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
ANT
[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 как у вас - тоже проблем не возникло. Видимо, проблема в компиляторе или настройках среды.
MAGician
Цитата(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.

В чем проблемы не пойму, уже всю голову сломал..... wacko.gif cranky.gif
ANT
Цитата(MAGician @ Mar 24 2011, 08:09) *
Обычные примеры у меня то-ж компилируются без ошибок, но как только я меняю МК на тот который мне нужен (ATmega88P), начинают валиться такие ошибки.
Хотя в документации написано что этот МК поддерживается библиотекой libavr4g1-4qt-k-0rs.a.
Причем неважно какие порты выставляю в параметрах SNSK1, SNS1.

В чем проблемы не пойму, уже всю голову сломал..... wacko.gif cranky.gif

В таблице указано:
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);
- и компиляция успешна.
Возможно, остались и другие проблемы, дерзайте sm.gif
silverio
Вопрос к АНТ
- пробовали Wheel реализовывать при помощи библиотеки от Atmel?
ANT
Цитата(silverio @ Mar 24 2011, 22:51) *
Вопрос к АНТ
- пробовали Wheel реализовывать при помощи библиотеки от Atmel?

Нет - только кнопки.
MAGician
Цитата(ANT @ Mar 24 2011, 11:11) *
- и компиляция успешна.
Возможно, остались и другие проблемы, дерзайте sm.gif


Спасибо большое, разобрался, теперь буду пробовать все это в железе реализовать =)
smk
Цитата(ANT @ Mar 22 2011, 22:28) *
Мне кажется там разжёвано до безобразия, есть таблицы - какая либа к какому МК и каким сенсорам (файл Library_Selection_Guide.xls). Я пробовал QTouch и с GCC и с IAR на Mega16 и Mega32. IAR даёт код раза в 1,5 компактнее. И в том и другом случае работает как часы.

А QMatrix не пробовали? Вроде бы все понятно и как-бы разжевано, но либо не компилится либо не работает. Делал макет. ИАР после компиляции проигнорировал порт для X-выводов не смотря на явное указание. Если выводы правильные (GCC) то не выдает результат на для slider на для кнопок. В конечном итоге мне нужен слайдер из 8 каналов. Tiny961A. Прошу помочь. Спасибо.
ANT
Цитата(smk @ Jul 17 2011, 22:57) *
А QMatrix не пробовали? Вроде бы все понятно и как-бы разжевано, но либо не компилится либо не работает. Делал макет. ИАР после компиляции проигнорировал порт для X-выводов не смотря на явное указание. Если выводы правильные (GCC) то не выдает результат на для slider на для кнопок. В конечном итоге мне нужен слайдер из 8 каналов. Tiny961A. Прошу помочь. Спасибо.

Не пробовал sad.gif. Есть ещё практический момент: в эксплуатации Qtouch кнопок по сравнению с тактильной клавиатурой есть неудобства - случайное прикосновение вызывает срабатывание; высокие требования к источнику питания (дешёвые USB-зарядки не годятся, от них Qtouch с ума сходит).
smk
Цитата(ANT @ Jul 18 2011, 13:10) *
Не пробовал sad.gif. Есть ещё практический момент: в эксплуатации Qtouch кнопок по сравнению с тактильной клавиатурой есть неудобства - случайное прикосновение вызывает срабатывание; высокие требования к источнику питания (дешёвые USB-зарядки не годятся, от них Qtouch с ума сходит).

В отношении случайного касания - ну такая их природа. Можно пробовать фильтровать по времени удержания. В отношении питания, у меня стоит 7805 и пока нет повода для замечаний.
silverio
To SMK
Я недавно начал работать с QMATRIX, использую IAR.
Сделал отладочную плату:
3-button, 1- wheel, Atmega 168 - проект компилируется нормально, использовал v3g3_qm_example_iar за основу.
На данный момент работают только 3-button sad.gif , wheel - в процессе sm.gif
smk
Цитата(silverio @ Jul 18 2011, 21:01) *
To SMK
Я недавно начал работать с QMATRIX, использую IAR.
Сделал отладочную плату:
3-button, 1- wheel, Atmega 168 - проект компилируется нормально, использовал v3g3_qm_example_iar за основу.
На данный момент работают только 3-button sad.gif , wheel - в процессе sm.gif

А размер кода совпал с табличным? debug включен или выключен?
silverio
Согласно Library_Selection_Guide для моей отладочной платы:
megaAVR 8-bit ATmega168PA QM 4x2 IAR libv3g3_8qm_4x_2y_krs_2rs.r90
3733 bytes of CODE memory
189 bytes of DATA memory

При максимальном уровне оптимизации по размеру кода получилось:
4 590 bytes of CODE memory (+ 20 range fill )
343 bytes of DATA memory (+ 24 absolute )

debug выключен!
smk
Вот именно. Я на тиньке2313 подорвался также по коду. Всего одна кнопка а кода почти до упора. Сейчас пытаюсь переползти на тиньку45 поскольку памяти больше, но не могу найти хоть что-то чтобы под нее скомпилировалось. Какое-то сплошное надувательство эти библиотеки и примеры.
comper
Цитата(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, менял значения, экспериментировал...но все тщетно
Осциллографа жаль нету сейчас дома. Не знаю как отладить эту всю бороду. Может кто подскажет, наведет на мысли...=)
comper
вобщем немного разобрался...на осциллографе увидел, что пачки импульсов отправляются и вроде даже видно, что конденсатор заряжается. Но все равно не работает оно у меня.
Во-первых: когда я пытаюсь поменять burst_lengths - просто вообще исчезают эти пачки. Меняю как указано в qtouch library user guide. Как мне все-таки поменять эти значения?
Во-вторых: когда пытаюсь добавить в код примера свой код, там где написано /*Time critical host application code goes here*/ или /* Time Non-critical host application code goes here */, тоже напрочь замолкает микроконтроллер или время между пачками резко уменьшается. При чем кода я добавляю одну строчку, не важно чего, например инициализацию какой-нибудь неиспользуемой ноги(настраиваю на выход), чтобы индицировать нажатия.
Мозг уже отказывает думать, потому что долбусь этими сенсорами уже не первый день.
Подскажите, если кто знает...

может можно кому-то конкретно, кто разбирался, позадавать вопросы по поводу этой qtouch library?
addi
Цитата(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
Заранее благодарен
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.