Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 17.11.2011, 20:57  
Sergey8870
Частый гость
 
Регистрация: 18.06.2005
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Sergey8870 на пути к лучшему
По умолчанию Помогите с Touch Screen на ADS7843

Написал програмку для PIC18F452 считавает и выводит координаты нажатия Touch Screen на ADS7843 ,экранчик 320х240 точек.Но проблема если нажимать с разным усилием то выводятся разные показания.
Помогите разобраться как исключить силу нажатия?
Реклама:
Sergey8870 вне форума  
Сказали "Спасибо" Sergey8870
warel (28.06.2019)
Непрочитано 17.11.2011, 21:33  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

А чем нажимаете, стилусом или пальцем?
При нажатии тонким стилусом показания не должны зависеть от усилия. При нажатии пальцем от усилия меняется площадь замыкания верхнего и нижнего контактных слоев и сам шейп контактной зоны, отсюда и изменения.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Эти 2 пользователя(ей) сказали Спасибо ut1wpr за это сообщение:
MisterDi (17.11.2011), warel (28.06.2019)
Непрочитано 17.11.2011, 21:53  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Вроде всё обсосано со всех сторон, но предложу свой вариант.

1. Усреднение входящих данных
2. Фильтрация одиночных выбросов (опционально, в зависимости от помех)

Сообщение от Sergey8870 Посмотреть сообщение
Но проблема если нажимать с разным усилием то выводятся разные показания.
3. Гистерезис на нажатие/отпускание. (сила нажатия сильнее, чем отпускания)
4. Удержание курсора в одной позиции после нажатия, пока вычисляемая координата находится в пределах окна (dx, dy).

Параметры, само собой, подбираются эмпирически.

Это не вся обработка, но в итоге получилась "конфетка", на 7" 800x600 играл в сапёра не напрягаясь. Если нужен полный функционал - спрашивайте.

Последний раз редактировалось AJScorp; 17.11.2011 в 21:56.
AJScorp вне форума  
Сказали "Спасибо" AJScorp
warel (28.06.2019)
Непрочитано 17.11.2011, 22:20  
Sergey8870
Частый гость
 
Регистрация: 18.06.2005
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Sergey8870 на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Действительно вы правы при нажатии стилусом показания не меняются я нажимал пальцем. Всем большое спасибо!
Sergey8870 вне форума  
Сказали "Спасибо" Sergey8870
warel (28.06.2019)
Непрочитано 28.08.2012, 18:03  
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Помогите с драйвером для ads7843.
Первый вопрос, которыйинтреесует, как под stm32f107 настроить SPI для правильной работы контроллера тачскрина. Я постоянно получаю разные числа при нажатии на приблизительно одну и ту же область.
Batisto4ka вне форума  
Сказали "Спасибо" Batisto4ka
warel (28.06.2019)
Непрочитано 28.08.2012, 18:05  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Batisto4ka, гуглите! Стыдно должно быть.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (28.06.2019)
Непрочитано 28.08.2012, 19:04  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

А вот калибровку как делаете?
Так чтоб не привязывать конкретную панельку к конкретному дисплею.
sdsrem вне форума  
Сказали "Спасибо" sdsrem
warel (28.06.2019)
Непрочитано 29.08.2012, 10:29  
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Сообщение от Easyrider83 Посмотреть сообщение
Batisto4ka, гуглите! Стыдно должно быть.
Да хоть гуглите, хоть не гуглите, есть пример stm32plus, там на с++ настройки CPOL=0; CPHA=0; PSC=256. У меня при этих настройках в ответ всегда 0. Есть другой пример под stm32f103 на польском сайте, там CPOL=1; CPHA=0; PSC=256. У меня тоже не работает. А вот когда ставлю CPOL=0, CPHA=1, psc=2 или 4 -выдвет какие-то даные, но постоянно разные.Я так понимаю, при нажатии на одну и ту же точку должны быть постоянно одни и те же значения приблизительно, даже без калибровки. и должна быть какая-то связь: справа- на лево или на оборот Координата Х то возрастает, то спадает, то же с координатой У при переходе сверху вниз или наоборот.Спадать или возрастать должны даже неоткалиброванные значения, я правильно понимаю?
Batisto4ka вне форума  
Сказали "Спасибо" Batisto4ka
warel (28.06.2019)
Непрочитано 29.08.2012, 10:45  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Ну а великий-могучий даташит ads7843.pdf? Глядя на диаграмму на стр.8, определяем, что SPI работает в режиме "SPI 0", тоесть, Idle state CKL=0, защелкивание в драйвере происходит при положительном фронте CKL, первый передаваемый бит должен выставляться контроллером на выход сразу же, до начала тактирования. Из драйвера ответ должен защелкиваться в контроллере тоже при положительном фронте CKL.
Далее, активно читаем datasheet ads7843.pdf и делаем все так, как требует даташит.
Алекс Василич вне форума  
Сказали "Спасибо" Алекс Василич
warel (28.06.2019)
Непрочитано 29.08.2012, 11:15  
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Помогите с Touch Screen на ADS7843

Настройка SPI
Код:
 SPI_InitTypeDef	SPI_InitStructure;
 SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
 SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
 SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
 SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
 SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
 SPI_InitStructure.SPI_NSS= SPI_NSS_Hard; 
 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
 SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
 SPI_Init(SPI1, &SPI_InitStructure);

 SPI_SSOutputCmd(SPI1, ENABLE);
 SPI_Cmd(SPI1,ENABLE);
Обработчик прерывания от PENIRQ
Код:
void EXTI15_10_IRQHandler (void)
{
static	uint16_t tsX, tsY;	
	if (EXTI-›PR & (1‹‹10)) // Прерывание от EXTI5?
				{  EXTI-›PR |= (1‹‹10); // Сбросить флаг  EXTI5.  
          DelayMs(2);
				  if ((GPIOA-›IDR & GPIO_Pin_10)==0)
						  TOUCHFLAG=1;
							else 
									TOUCHFLAG=0;
					}
}
Согласно документу Touch screen controller tips, координаты Х и У необходиом считівать до тех пор, пока предідущее прочитанное значение не станет равнім текущему.
Мои функции чтения координат
Код:
/*=================================================  =============================================*/
uint16_t TPReadY(void) //Odczyt wartości Y z ADS7843
{ 
   uint16_t x=0;
   uint16_t	predx=0;	
	
   WriteSPI(0x93);
   x=WriteSPI(0x00);
   x‹‹=8;
   x+=WriteSPI(0x00);

   x = x››3;
   
	do
	{
    predx=x;
    WriteSPI(0x93);
    x=WriteSPI(0x00);
    x‹‹=8;
    x+=WriteSPI(0x00);
    x = x››3;
	}
	while (x!=predx);
return (x);
}
/*=================================================  =============================================*/
uint16_t TPReadX(void) //Odczyt wartości X z ADS7843
{
  uint16_t y=0;
  uint16_t predy=0;
	
 WriteSPI(0xD3);
  y=WriteSPI(0x00);
  y‹‹=8;
  y+=WriteSPI(0x00);

 
  y = y››3; 
	do
	{
		predy=y;
		WriteSPI(0xD3);
		y=WriteSPI(0x00);
		y‹‹=8;
		y+=WriteSPI(0x00);
		y = y››3;
	}while (y!=predy);
return (y);
}
Функция записи/чтения SPI
Код:
uint16_t WriteSPI(uint8_t val)
{
	  while(SPI1-›SR & SPI_SR_TXE==0x00); 
         SPI1-›DR = val;

    while(SPI1-›SR & SPI_SR_RXNE==0x00);
					return SPI1-›DR;

}
main:
Код:
while(1)
	{
		if (TOUCHFLAG)
		{
			TOUCHFLAG=0;
			T_CSCLR;
			SpiDelay(10);
			tsX=TPReadX();;
			tsY=TPReadY();
			T_CSSET;
			
		}
	}
}
Batisto4ka вне форума  
Сказали "Спасибо" Batisto4ka
warel (28.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тouch screen в protes-е neox-neox Proteus 5 20.10.2011 04:58
touch skreen на Rover G7 Malyshev_v Ремонт оргтехники 3 03.05.2011 16:10
Замена touch screen tarasov128 Информация по радиокомпонентам 1 28.09.2010 17:12
Touch Panel: anton_1000 Микроконтроллеры, АЦП, память и т.д 4 14.12.2008 09:17
Взамодействие Touch memory и микроконтроллера. tatarin_as Микроконтроллеры, АЦП, память и т.д 3 15.04.2008 19:15


Часовой пояс GMT +4, время: 08:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot