基于mini2440触摸屏驱动(2)

static irqreturn_t stylus_action(int irq, void *dev_id)    {        unsigned long data0;        unsigned long data1;           if (OwnADC) {            data0 = ioread32(base_addr+S3C2410_ADCDAT0);            data1 = ioread32(base_addr+S3C2410_ADCDAT1);               xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;            yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;            count++;               if (count < (1<<2)) {  //如果小于4,继续启动adc                iowrite32(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC);                iowrite32(ioread32(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);            } else {  //已经采样了4次,等待1ms后调用touch_timer函数。                mod_timer(&touch_timer, jiffies+1);                iowrite32(WAIT4INT(1), base_addr+S3C2410_ADCTSC);            }        }           return IRQ_HANDLED;    }  

接下来就得看一下touch_timer在忙些什么请看招。。。。。。。。。。。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwfwsx.html