roboforum.ru

Технический форум по робототехнике.

Мне нужна помощь с сенсорным экраном

Мне нужна помощь с сенсорным экраном

GIGOLAS » 12 окт 2008, 04:29

Вот схемка:
http://www.mcselec.com/index.php?option=com_content&task=view&id=189&Itemid=57

Вот тестовая программа:

Код: Выделить всёРазвернуть

$regfile = "m128def.DAT"
'$crystal = 14745600
'$baud = 19200
'$eepleave
'$loadersize = 512
'$hwstack = 100
'$swstack = 75
'$framesize = 40
$lib "glcdKS108.lib"                                        'Include the library for the KS-108 controler


Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 2 , Rd = 3 , Reset = 5 , Enable = 4 , Mode = 6
'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS1  Chip select
'CE2=CS2  Chip select second chip
'CD=Data/instruction
'RD=Read
'RESET = reset
'ENABLE= Chip Enable


Config Adc = Single , Prescaler = Auto , Reference = Internal       'Setting up the a/d convertor


Dim X As Word , Y As Word
Setfont Font8x8
Start Adc                                                   ' Start the ad convertor
' =====Main=====
Main:
'*************************
' Here your main prog
'*************************
Do
   Gosub Readtouch

   Lcdat 1 , 1 , "TS READING"
   Lcdat 2 , 1 , "X = " ; X
   Lcdat 3 , 1 , "Y = " ; Y
   Waitms 300
   Cls

Loop                                            ' Read the touch cordinates




Readtouch:
Config Portf.0 = Output                                     ' Makes port F.0 output
Config Portf.2 = Output                                     ' Makes port F.0 output
Set Portf.0                                                 ' Sets port F.0 High
Reset Portf.2                                               ' Sets port F.2 Low
Config Pinf.1 = Input                                       ' Sets port F.1 as input
Config Pinf.3 = Input                                       ' Sets port F.1 as input  because we need it now as ad input
Waitms 20                                                   ' Wait until the port is stable
Y = Getadc(3)                                               ' Read the ad value for the y
Y = 1024 - Y                                                ' Invert the reading
Config Portf.1 = Output                                     ' Makes port F.1 output
Config Portf.3 = Output                                     ' Makes port F.3 output
Reset Portf.1                                               ' Sets port F.1 Low
Set Portf.3                                                 ' Sets port F.3 High
Config Pinf.0 = Input                                       ' Sets port F.0 as input
Config Pinf.2 = Input                                       ' Sets port F.2 as input  because we need it now as ad input
Waitms 20                                                   ' Wait until the port is stable
X = Getadc(2)                                               ' Read the ad value for the x
X = 1024 - X                                                ' Invert the reading
Return




End



$include "font8x8.font"


-------------------------------------------------------
Текст оригинал
-------------------------------------------------------
The problem is that I can not get a reading on the top left quarter of the screen. The reading in this section is always 1 on both X and Y axis no matter where I touch.

As you can see in the below sketch, the readings start at the bottom right hand corner of the red box.

The reading at this corner begin from 1 and go to the maximum of (for example 400) as you progress toward the right and down.

Can anyone help me understand why is this happening?
-------------------------------------------------------
Кривой перевод
-------------------------------------------------------
Проблема заключается в том, что я не могу получить чтении в верхней левой четверти экрана. Чтение в этом разделе всегда равен 1 на X и Y оси независимо от того, где я касаюсь.

Как вы можете видеть ниже на рисунке, чтения начинаются в нижнем правом углу окна красный.

Чтение на этом углу начать с 1 и перейти к максимальной (например, 400), как вы прогресс в направлении справа и вниз.

Может ли кто-нибудь помочь мне понять, почему это происходит?

-------------------------------------------------------
Ему ответили
-------------------------------------------------------
You're using the internal reference for the ADC. Use AVcc instead and you'll be fine !
-------------------------------------------------------
Кивой перевод
-------------------------------------------------------
вы, используя внутренние ссылки на ADC. Используйте вместо AVcc и вам будет хорошо!



У меня такаяже проблема ( неработает угол экрана-сенсорного ) не могу тоже вьехать в чем дело. Пожалуста разьесните что имелось под ответом, использовать сылки на ADC вместо AVcc ?

Re: Мне нужна помощь с сенсорным экраном

blindman » 12 окт 2008, 05:15

Имелось в виду, что в качестве опорного напряжения АЦП используется внутренний источник МК, типичное напряжение 1.1 - 2.56 В, в зависимости от модели. Измеряемое напряжение не может быть больше чем опорное. Если использовать в качестве опорного напряжения Vcc, которое может быть до 5В, то можно расширить диапазон измеряемых напряжений.

Re: Мне нужна помощь с сенсорным экраном

Кирилл » 12 окт 2008, 12:31

тоесть вместо строчки
Код: Выделить всёРазвернуть
Config Adc = Single , Prescaler = Auto , Reference = Internal

надо писать
Код: Выделить всёРазвернуть
Config Adc = Single , Prescaler = Auto, Reference = AVCC

и не забыть 100н керамику с AREF на землю

Re: Мне нужна помощь с сенсорным экраном

GIGOLAS » 12 окт 2008, 13:17

Спасибо вам. А то застопорился думал дисплей или МК битый.

Re: Мне нужна помощь с сенсорным экраном

GIGOLAS » 13 окт 2008, 17:37

Вот собран на скорую руку, из за потери прошлой платы ( выкинул с гореча ). Начинаю эскперименты дальше
Вложения
010.jpg
007.jpg
004.jpg
001.jpg

Re: Мне нужна помощь с сенсорным экраном

Duhas » 14 окт 2008, 20:18

мона пару слов о само экране.. он сразу с сенсором или отдельно? где есть, сколь стоит?

Re: Мне нужна помощь с сенсорным экраном

GIGOLAS » 15 окт 2008, 00:54

Я брал в тетраелектронике, это периферийные модули MIKROELEKTRONIKA


вот сылки

экран --- ME-GLCD 128X64 http://www.terraelectronica.ru/catalog.php?ID=973
сенсор - ME-TOUCH SCREEN http://www.terraelectronica.ru/catalog.php?ID=973&Page=1&InHave=&InNew=&Search=&Text=&Gde=&PageS=


Экран - 647.33 рублей
Сенсор - 277.43 рублей

Да вот еше че, сам дисплей медленный работает ток до 7 МгЦ (Тактовая частота МК). Если тебе не критично то знай, а если нужно больше то искать другой дисплей или к гуру идти .

Добавлено спустя 13 минут 34 секунды:
Есть индикатор фирмы МЭЛТ, модель MT-12864A-2FLA или подобные. Вот сылка http://www.melt.aha.ru/work/display/151. очень мне понравились в работе, до 12МгЦ тактовай работал прекрасно (вроде до 24 Мгц работал непомню уже :oops: ).

Одно но сенсорная матрица не подходит к нему, а жаль :(

Re: Мне нужна помощь с сенсорным экраном

Duhas » 15 окт 2008, 01:02

да вот как бы мне бы седе в новый дом нада бы мутить скора начинать систему аля умный дом.. и нада ко всему этому интерфейс какой нить .. скорости там нинада вовсе.. просто во вменяемом виде интерфейс реализовать ...

Re: Мне нужна помощь с сенсорным экраном

GIGOLAS » 15 окт 2008, 18:53

Я тож мучу, ток не умный дом а бортовой компьютер на моц. Избавляюсь сенсором от кнопок управления маршрутного компа. Я думаю сделать, один с дисплэем подключение к нему дачика скорости и все, второй для всего остального (типа контроля истравности лампочек и другой разной мути) и держит связь ток в том случае когда че критичное или даные по запросу. Вот :)


Rambler\'s Top100 Mail.ru counter