|
ADS7843 помогите разобраться |
|
|
|
Aug 26 2012, 15:17
|
Частый гость
 
Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997

|
Помогите, пожалуйста, примером кода, как работать с тачскрином ads7843e. Есть плата SK-WF43BTIBEDOTP-Plug. Там TFT с данным тачскрином. По примерам в нете настраиваю spi. В результате при касании к экрану срабатывает прерывание, настроенное на PENIRQ. Но при опрашивании координат всегда возвращается 0. Опрашиваю координаты командами 0х9С и 0хDC. Алгоритм такой: обработчик прерывания от PENIRQ устанавливает флаг TOUCH_FLAG.В основном цикле идет проверка флага и считывание координат х и у следующим образом: Код if (TOUCH_FLAG) { TOUCH_FLAG=o; Xpos=WriteSPI(SPI1,0x9C); Ypos=WriteSPI(SPI1,0xDC); }
// uint8_t WriteSPI(SPI_TypeDef *SPIx, uint8_t val) { SPIx->DR=val; while(!(SPI1->SR&SPI_SR_RXNE)); return SPI1->DR; } В качестве мастрева использую камень stm32f107vc(плата SK-mstm32f107)
|
|
|
|
|
 |
Ответов
|
Aug 28 2012, 07:04
|
Частый гость
 
Группа: Участник
Сообщений: 89
Регистрация: 3-01-11
Пользователь №: 61 997

|
Цитата(sherr @ Aug 27 2012, 21:30)  Вообще-то у самого тачскрина приличная емкость - порядка тысяч пикофарад и показания после касания устанавливаются единицы- десятки микросекунд, поэтому обычно читают показания Х и У пока разница между соседними не станет минимальной (обычно 2-3 единицы), кроме того - отбрасывают слишком большие или слишком малые показания, ибо на самых краях данные некорректны. Данные получаются в условных единицах, где 255 - максимум (ну 479 по Х и 271 по У для вашего дисплея) ну или минимум, смот- ря как подключено в плаге. И еще, замечено, что если время от времени не читать результаты Х-У просто так не дожидаясь касания, PENIRQ может подвиснуть ... то есть, после срабатывания прерывания от penirq я читаю Х и У столько раз, пока пока разница между предыдцщим и текущим прочитанным значением Х не станет равна 2-3, и то же с У?
|
|
|
|
|
Aug 28 2012, 07:13
|
Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 10-06-06
Из: Ставрополь
Пользователь №: 17 955

|
Цитата(batisto4ka @ Aug 28 2012, 10:04)  то есть, после срабатывания прерывания от penirq я читаю Х и У столько раз, пока пока разница между предыдцщим и текущим прочитанным значением Х не станет равна 2-3, и то же с У? У Стартеркита в примерах именно так - а у вас их нету,что ли , напишите им- пришлют на почту, правда у них опросом в цикле, без прерывания ,,, у меня тоже их подобный код есть , но на stm32f4xx
Сообщение отредактировал sherr - Aug 28 2012, 07:14
|
|
|
|
Сообщений в этой теме
batisto4ka ADS7843 помогите разобраться Aug 26 2012, 15:17 batisto4ka Теперь тач отвечает, но постоянно выдает координат... Aug 26 2012, 19:13 batisto4ka и еще.Ноги SPI дрыгаются. Не могу подобрать скорос... Aug 27 2012, 08:18 batisto4ka Поставив прескаллер SPI в 2, получаю следующие дан... Aug 27 2012, 14:00   batisto4ka Цитата(sherr @ Aug 28 2012, 10:13) У Ста... Aug 28 2012, 07:23 sherr Куда слать ? Нашел только свое для LPC2478 ... Aug 28 2012, 07:30 batisto4ka Цитата(sherr @ Aug 28 2012, 10:30) Куда ... Aug 28 2012, 10:17 sasamy Цитата(batisto4ka @ Aug 26 2012, 19:17) П... Aug 28 2012, 10:43 batisto4ka Цитата(sasamy @ Aug 28 2012, 13:43) Посмо... Aug 28 2012, 19:33  Jury093 Цитата(batisto4ka @ Aug 28 2012, 22:33) А... Aug 28 2012, 19:58   sasamy Цитата(Jury093 @ Aug 28 2012, 23:58) наве... Aug 29 2012, 01:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|