silovi4 0 10 октября, 2013 Опубликовано 10 октября, 2013 · Жалоба И всё таки проблема с CooCox-ом. В Keil-е всё отлично устанавливается и сбрасывается. Так что буду копать дальше. :08: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 11 октября, 2013 Опубликовано 11 октября, 2013 (изменено) · Жалоба Непонятно как это работает: TSC->CR = (2 << TSC_CR_CTPH) | (6 << TSC_CR_CTPL) | (9 << TSC_CR_SSD) | (0 << TSC_CR_SSE) | (1 << TSC_CR_SSPSC) | (0 << TSC_CR_PGPSC) | (6 << TSC_CR_MCV) | (0 << TSC_CR_IODEF) | (0 << TSC_CR_SYNCPOL) | (0 << TSC_CR_AM) | (0 << TSC_CR_START) | (1 << TSC_CR_TSCE); Можете объяснить как эта запись записывает значения в регистр CR? Или это такая очистка регистра? Изменено 11 октября, 2013 пользователем silovi4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 30 октября, 2013 Опубликовано 30 октября, 2013 · Жалоба И тишина... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 30 октября, 2013 Опубликовано 30 октября, 2013 · Жалоба Непонятно как это работает: TSC->CR = (2 << TSC_CR_CTPH) | (6 << TSC_CR_CTPL) | (9 << TSC_CR_SSD) | (0 << TSC_CR_SSE) | (1 << TSC_CR_SSPSC) | (0 << TSC_CR_PGPSC) | (6 << TSC_CR_MCV) | (0 << TSC_CR_IODEF) | (0 << TSC_CR_SYNCPOL) | (0 << TSC_CR_AM) | (0 << TSC_CR_START) | (1 << TSC_CR_TSCE); Можете объяснить как эта запись записывает значения в регистр CR? Или это такая очистка регистра? Посмотрите поля регистра TSC->CR. Устанавливаются соответствующие значения в соответствующие поля. Что конкретно не понятно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 30 октября, 2013 Опубликовано 30 октября, 2013 · Жалоба Посмотрите поля регистра TSC->CR. Устанавливаются соответствующие значения в соответствующие поля. Что конкретно не понятно? С этим уже разобрался. Инициализация у меня проходит, т.е. я инициализировал порты и TSC. Теперь не понятно как определять касание. Я так понимаю это определяется уже в прерывании, но в Вашем коде мне не понятны некоторые переменные, откуда они берутся. Можете в двух словах объяснить как определять касание? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 30 октября, 2013 Опубликовано 30 октября, 2013 · Жалоба С этим уже разобрался. Инициализация у меня проходит, т.е. я инициализировал порты и TSC. Теперь не понятно как определять касание. Я так понимаю это определяется уже в прерывании, но в Вашем коде мне не понятны некоторые переменные, откуда они берутся. Можете в двух словах объяснить как определять касание? Исключительный матан. В двух словах: это авторский алгоритм с автокалибровкой, раскрывать желания не имею. Вам сойдет простое сравнение с порогом. Данные от TSC можно забирать так: tsc_val = TSC->IOGXCR[0]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 1 ноября, 2013 Опубликовано 1 ноября, 2013 (изменено) · Жалоба Исключительный матан. В двух словах: это авторский алгоритм с автокалибровкой, раскрывать желания не имею. Вам сойдет простое сравнение с порогом. Данные от TSC можно забирать так: tsc_val = TSC->IOGXCR[0]; Спасибо хоть за это! Хотел ещё спросить: в моей схеме, та что я приложил в самом начале, я правильно подключил конденсаторы? А то я меряю осциллографом ножку PA0 на неё вообще ничего не приходит, а на PA1 идут импульсы примерно такого вида: Изменено 1 ноября, 2013 пользователем silovi4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 ноября, 2013 Опубликовано 1 ноября, 2013 · Жалоба Спасибо хоть за это! Хотел ещё спросить: в моей схеме, та что я приложил в самом начале, я правильно подключил конденсаторы? А то я меряю осциллографом ножку PA0 на неё вообще ничего не приходит, а на PA1 идут импульсы примерно такого вида: А данные при этом меняются? Осциллограмма очень похожа на правду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 1 ноября, 2013 Опубликовано 1 ноября, 2013 · Жалоба А данные при этом меняются? Осциллограмма очень похожа на правду. Вы про счётный регистр? Если да, то он досчитывает до максимально заданного значения при этом устанавливаются два флага (флаг ошибки и флаг завершения опроса), которые вызывают прерывание. При касании пальцем ничего не меняется. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 4 ноября, 2013 Опубликовано 4 ноября, 2013 · Жалоба Вы про счётный регистр? Если да, то он досчитывает до максимально заданного значения при этом устанавливаются два флага (флаг ошибки и флаг завершения опроса), которые вызывают прерывание. При касании пальцем ничего не меняется. :( В общем разобрался, то я не правильно сконфигурировал порты. Данные получаются вполне адекватные. Когда не касаюсь сенсора счётный регистр показывает где-то 0x14С0, когда дотрагиваюсь - 0x17С0. Я думаю так и должно быть. Теперь мне не понятно как определять что нажата конкретная кнопка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 4 ноября, 2013 Опубликовано 4 ноября, 2013 · Жалоба В общем разобрался, то я не правильно сконфигурировал порты. Данные получаются вполне адекватные. Когда не касаюсь сенсора счётный регистр показывает где-то 0x14С0, когда дотрагиваюсь - 0x17С0. Я думаю так и должно быть. Когда я делал сенсор, то числа отличались очень сильно (в разы). Теперь мне не понятно как определять что нажата конкретная кнопка? Переключением опроса кнопок по очереди. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 4 ноября, 2013 Опубликовано 4 ноября, 2013 (изменено) · Жалоба Когда я делал сенсор, то числа отличались очень сильно (в разы). Кстати у меня почему-то в group2 значения очень маленькие, от 0x04 до 0x0B :( Во всех остальных (при тех же настройках) вроде нормально. Переключением опроса кнопок по очереди. Всё понял :rolleyes: А какой ёмкостью кондёры у вас были? Изменено 4 ноября, 2013 пользователем silovi4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 4 ноября, 2013 Опубликовано 4 ноября, 2013 · Жалоба А какой ёмкостью кондёры у вас были? вроде, 100нФ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silovi4 0 4 ноября, 2013 Опубликовано 4 ноября, 2013 (изменено) · Жалоба Разобрался с group 2, оказалось просто не припаял один конец кондёра. Теперь возник другой вопрос: почему на некоторых тачах (даже если тач из одной группы) значения меняются в противоположную сторону. Допустим на таче G4_IO1, когда не касаешься его, значение 0x1400, если касаешся 0x1600. А на таче G4_IO3 наоборот (при касании 0x1400, а при отпускании 0x1600). Может сталкивались с этой проблемой? Изменено 4 ноября, 2013 пользователем silovi4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 4 ноября, 2013 Опубликовано 4 ноября, 2013 · Жалоба Теперь возник другой вопрос: почему на некоторых тачах (даже если тач из одной группы) значения меняются в противоположную сторону. Может сталкивались с этой проблемой? Такого не должно быть. При касании значение должно уменьшаться (т.к. переносимый заряд увеличивается и для достижения порога нужно меньше иттераций). Где-то неправильно инициализируете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться