Re: Drawing Test Fails in Touch Panel CETK



Hi Ajith,

It would be great help if you explain more regarding interaction of
timer interrupt with GPIO. I have peace of code inside touch driver
ISR where I wait for Gpio Event using WaitforSemphore API. I use to
bind GPio and timer IRQ with SYS_INTR during TouchPanelEnable.
I want to know, for exactly which cases WaitforSemphore signals?
Till Now As per my understanding I was thinking that this succedds
when GPIO detects either a PEN DOWN interrupt or PEN UP Interrupt
(when timer expires). But Now Seems like I am wrong in my
understanding, because When I tried to reduce the counter value (up to
0xC) of timer from a standard one, still I was not getting mutlitple
Interrupt for single long pen down.
i use to get interrupt exactly when stylus is down or lift up. From
Debuggging Its seems like timer has nothing to do with pen up
interrupt. But then How I am getting waitforSemphore signals exaclty
when pen is up!!

Thanks
Amit
On Sep 5, 9:50 am, Amit <abansalt...@xxxxxxxxx> wrote:
Hi Ajith,

Please comment on discussion above.

Thanks
Amit
On Sep 4, 5:12 pm, Amit <abansalt...@xxxxxxxxx> wrote:


Hi Ajith,

Thanks for urgent response again.

I am using ARMV4I platform, BSP is our coustomized BSP. I am able to
measure the state of pin at given time. Also I am able to get the gpio
interrupt( ie Event in my touch driver ISR) whenever someone touchs
the panel. Touch panel is working fine i.e. I am able to use touch
for giving user inputs. Also All the CETK tests are passing except the
one i.e. Drawing test.

For Drawing I think, Main problem is, I get only one gpio interrupt
for a single pen down (i.e. single touch).

Since I am not getting multiple interrupt for a long pen down, thats
why I think CETK app is not getting enough number of coordinates
points in its queue. Thats why When I draw a line it gets only one
point in the queue for starting location. So Drawing not happens.

I use to check gpio pin status whenever I get the gpio
interrupt(i.e.Event). During Interrupt Initialization I am binding
gpio and timer irq to TouchEvent handle. So ideally I sould get the
event whenever there is a change in the status of gpio or whenver
timer expires. But seems like only first one is working. I mean I am
getting Event only when gpio pin status changes(i.e. when user lift up
or presses down the stylus).

So what can be the possible cause for not getting multiple events
when timer expires for a single long pen down? Or Formost Is it
require to get multiple events for a single long pen down for drawing
to be happen successfully.

Please comment on above with your views.

Thanks in advance.
Amit

On Sep 4, 4:12 pm, Ajith <Aj...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

Hi Amit,
I meant something different. When you configure a GPIO pin as Interrupt, you
should be able to measure the state of the pin at any given time. There
should be some GPIO registers for that.
GPIO interrupt must come when you touch the panel.Which is the platform do
you use? You have to review your interrupt configuration such that you must
get an interrupt when you toch the panel. Which BSP do you use?
regards
ajith

"Amit" wrote:
Hi Ajith,

Thanks for reply again.

I am using ADS7846 touch controller.

I use to enable timer when i get pen down interrupt and stop the timer
PENIRQ status changes. But since Gpio Events comes only when I lift up
the stylus. So do you mean that I need to configue gpio in such a way
that Its should signal my ISR after certain period of time, if yes
then Can you please tell me how.

Thanks
Amit
<Aj...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi Amit,
The Touch screen driver works using PEN_DOWN and PENUP event. Penup will
mostly be a timer interrupt which is enabled when you get a PENDOWN event.
The whole idea is when you get a PENDOWN event, start a timer and which
repeatedly checks the whether the Pen is up .
Is it not possible to get the state of the GPIO pins throgh its registers?
Normally any GPIO pin which is configured as an interrupt would reflect its
state in some GPIO registers when the interrupt happens. by this method one
can identify a pen down interrupt. what is the controller you use?
regards
Ajith

"Amit" wrote:
Hi Ajith,

Thanks for your reply.

If we send Coordinates cooresponding to every pen down, then how do we
manage use case single tip down. Because cuurently I use calculate
time diffrence between two consequetives interrupt to find out whether
user has really pressed the panel or not.
My Gpio just give interrupt whenever any events happens on the gpio
port for touch panel( either pen up or pen down). Its doesn't tells me
that whether its pen up or pen down. I use a internal logic thats
treat any alternative events as pen up and pen down.
Do you mean that I should have more information from gpio regarding
its pen up or pen down.

Regards
Amit
On Sep 3, 5:08 pm, Ajith <Aj...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi,
I think we need to pass coordinates to the OS after every PENDOWN interrupt.
I think your threshold can go wrong because flags will get changed for every
Touchpanel events.
regards
Ajith

"Amit" wrote:
Hi All,

I am trying Drawing test in Touch Panel Test on WinCE 5.0
Enviornment. Test use to fail. Also In log it shows the message
TouchPanelSetCalibration Failed. I am able to pass all the Other test
cases except InitializeCurserTest which is actually skipped, since not
supported inside my touch screen driver, and i hope its not require
even.
Also When I run the test individually first its tries to calibrate
the screen which happens successfully. After that It ask to draw
something on screen for some time period. When I try to draw on the
screen using stylus, No lines comes on the screen.
But When I try to just press the stylus at lot many points of touch
panel. Suddenly some lines appers on the screen. Line start from the
point where i press on the panel and goes up to left bottom corner.

Let me explain you my implementation of touch screen driver. I have
taken reference code for my driver from CE 5.0 Public\Common\Oak
\Drivers folder. My driver use to detect use to send coordinates to
GWES corresponding to every pen down greater then a threshold value.
Can Someone Please give me some pointers what can possibley go wrong.

Thanks in Advance.- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -


.



Relevant Pages

  • Re: Has somebody written special button driver?
    ... OAL interrupt code as well. ... The popup application and the stream button driver can ... Calculate the % of time the system will spend polling ... If you poll the GPIO ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Drawing Test Fails in Touch Panel CETK
    ... I use to enable timer when i get pen down interrupt and stop the timer ... So do you mean that I need to configue gpio in such a way ... mostly be a timer interrupt which is enabled when you get a PENDOWN event. ... port for touch panel(either pen up or pen down). ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Drawing Test Fails in Touch Panel CETK
    ... If you at anytime read the GPIO ... bind GPio and timer IRQ with SYS_INTR during TouchPanelEnable. ... when GPIO detects either a PEN DOWN interrupt or PEN UP Interrupt ... Touch panel is working fine i.e. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Drawing Test Fails in Touch Panel CETK
    ... Is your touch driver sampling the stylus inputs once a pen-down event comes ... Notice how once IRQ_ADC interrupt has occured, ... For Drawing I think, Main problem is, I get only one gpio interrupt ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Drawing Test Fails in Touch Panel CETK
    ... Is your touch driver sampling the stylus inputs once a pen-down event comes ... Notice how once IRQ_ADC interrupt has occured, ... Touch panel is working fine i.e. ... gpio and timer irq to TouchEvent handle. ...
    (microsoft.public.windowsce.platbuilder)

Loading