[国嵌攻略][141][触摸屏驱动编程]

开启XY坐标转换,并上报

触摸屏驱动文件在/drivers/input/touchscreen/s3c2410_ts.c

 

复制代码
static void touch_timer_fire(unsigned long data)
{
      unsigned long data0;
      unsigned long data1;
    int updown;

      data0 = ioread32(base_addr+S3C2410_ADCDAT0);
      data1 = ioread32(base_addr+S3C2410_ADCDAT1);

     updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));

     if (updown) {
        //判断上报事件
        if(count != 0){   //如果是第四次采样,那么提交上报事件
            //交换坐标
            long tmp;
            
            tmp = xp;
            xp = yp;
            yp = tmp;
            
            //平均处理
            xp >>= 2;
            yp >>= 2;
            
            //上报事件
            input_report_abs(dev, ABS_X, xp);
            input_report_abs(dev, ABS_Y, yp);
            
            input_report_abs(dev, ABS_PRESSURE, 1);
            input_report_key(dev, BTN_TOUCH, 1);
            
            //同步上报
            input_sync(dev);
            
            //显示坐标
            printk("x = %d, y = %d\n", xp, yp);
        }
        
        //清零转换坐标
        xp = 0;
        yp = 0;
        count = 0;
        
         //启动坐标转换
        iowrite32(1<<2, base_addr + S3C2410_ADCTSC);                                            //设置自动转换模式
        iowrite32(ioread32(base_addr + S3C2410_ADCCON) | (1<<0), base_addr + S3C2410_ADCCON);   //开启坐标转换
     } else {
         count = 0;

         input_report_key(dev, BTN_TOUCH, 0);
         input_report_abs(dev, ABS_PRESSURE, 0);
         input_sync(dev);

         iowrite32(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
        if (OwnADC) {
            OwnADC = 0;
            up(&ADC_LOCK);
        }
     }
}
复制代码

 

posted @   盛夏夜  阅读(272)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示