- 论坛徽章:
- 0
|
回复 12# Godbach
static inline int pendown (wm97xx_ts_t *ts)
{
printk("ddddddddddd\n");
return ts->codec->codec_read(ts->codec, AC97_WM97XX_DIGITISER_RD) & WM97XX_PEN_DOWN;
}
static void wm97xx_acq_timer(unsigned long data)
{
wm97xx_ts_t *ts = (wm97xx_ts_t*)data;
unsigned long flags;
static long x, y, x0, y0;
static int p0=0, penup=0; //pendown flag
TS_EVENT event;
spin_lock_irqsave(&ts->lock, flags);
printk("0000000000000\n");
/* are we still registered ? */
if (!ts->is_registered) {
spin_unlock_irqrestore(&ts->lock, flags);
// return; /* we better stop then */
}
printk("1111111111111\n");
//by xhhe.
/* read coordinates if pen is down */
//if (!pendown(ts))
// goto acq_exit;
if (!pendown(ts))
{ //pen is not down now.
printk("2222222222222222222");
if(penup == 0xFF) //ALready has a pne up event;
{
printk("33333333333333");
goto acq_exit;
}
if(penup < 2)
{//Waite 2 timer to create a steady pen UP event.
penup++;
goto acq_exit;
}
p0 |= 1; //penup should equal 2.
。。。。。。。。。。。。。。
我查了好久,觉得是 if (!pendown(ts))这个函数中,这句return ts->codec->codec_read(ts->codec, AC97_WM97XX_DIGITISER_RD) & WM97XX_PEN_DOWN有问题,但是就是不知道什么问题。求指点一二。。。
|
|