查询触摸屏 | 工业触摸屏
登陆:用户 密码
网站首页 | 触摸屏资讯 | 触控一体机 | 触摸屏屏幕 | 触摸屏机柜 | 触摸显示器 |  触摸控制器 | 自助终端 | 呼叫系统 | 触摸屏论坛
电子大屏 | 触摸屏外设 | 考勤排队机 | 触摸屏新品 | 解决之方案 | 选购与维护 |  驱动与软件 | 数字城市 | POS 系统 | 触摸屏软件
触摸屏浏览器Toucher V4.1正式发   浙江杭州宏拓科技发展有限公司联   新疆诚信行商贸有限公司联系方式   福建省泉州卓远科技限公司联系方   Toucher触摸屏浏览器4.0正式发布   Toucher触摸屏浏览器4.0正式发布   广东省广州市3M誉思电子科技有限   欢迎加入中国触摸屏网群   广州市力麒贸易有限公司重庆分公   上海尚科信息技术有限公司    全国触摸屏销售热线:【请点击】
导航: 首页 >> 选购与维护 >> 触摸屏技术 >> 正文 全国触摸屏销售热线:(点击查看)
全国触摸屏经销商
【浙江杭州】杭州宏拓
【新疆乌市】新疆诚信行
【上 海 市】尚科触控
【贵州凯里】贵州易通
【福建泉州】泉州卓远
【广东广州】3M誉思触控
【重 庆 市】重庆力麒
【湖北武汉】武汉力麒
【北 京 市】北京联控
【江苏苏州】苏州名雅
s3c2410触摸屏在linux下的驱动分析二  
s3c2410触摸屏在linux下的驱动分析二
副标题:s3c2410触摸屏在linux下的驱动分析二
日期:2008-03-19 22:44:57     来源:雪竹的BLOG   编辑:51Touch 
else if (adc_state == 1)
{
  adc_state = 0;
  disable_ts_adc();
  x = (ADCDAT1 & 0x3ff);
  tsdev.penStatus = PEN_DOWN;
  DPRINTK("PEN DOWN: x: d, y: d\n", x, y);
  wait_up_int();
  tsEvent();
}
    若查看A/D转换的状态变量,若为1 表示进行过Y坐标的A/D转换,将该变量设为0。然后调用宏函数disable_ts_adc 来禁止通过读操作启动A/D转换。
    接着将x = (ADCDAT1 & 0x3ff); 这一步将Y坐标的ADC转换数据寄存器的D9~D0 这10为读出到变量x(这里由于是竖屏,参考原理图后知道,硬件连线有过改动,将XP,XM 和YP,YM 进行了对换,这样ADCDAT1 里读出的是XP,XM 方向电阻导通的值,也就是x轴坐标值)。
    随后将变量tsdev.penStatus 的状态值改为笔按下,并调用wait_up_int 宏函数来设置触摸屏为等待中断模式【笔抬起产生中断】,具体定义如下:
#define wait_up_int() { ADCTSC = UP_INT | XP_PULL_UP_EN | XP_AIN | XM_HIZ | \
    YP_AIN | YM_GND | XP_PST(WAIT_INT_MODE); }
    用该宏函数来设置ADC 触摸屏控制寄存器,参考S3C2410 芯片datasheet 中关于触摸屏的章节,具体设置参数如下:
UP_INT = 1<<8 * 1  该位保留且应该设为0,这里设为1 不知道为什么 【笔按下或笔抬起中断信号控制位,设为1 表示笔抬起产生中断信号】
XP_PULL_UP_EN = 1<<3 * 0  上拉开关使能,设为0 表示XP 引脚上拉使能
XP_AIN = 1<<4 * 1  选择nXPON 引脚输出值,设为1 表示nXPON 引脚输出1,则XP 引脚连接AIN[7] 引脚
XM_HIZ = 1<<5 * 0  选择XMON 引脚输出值,设为0 表示XMON 引脚输出0,则XM 引脚为高阻态
YP_AIN = 1<<6 * 1  选择nYPON 引脚输出值,设为1 表示nYPON 引脚输出1,则YP 引脚连接AIN[5] 引脚
YM_GND = 1<<7 * 1  选择YMON 引脚输出值,设为1 表示YMON 引脚输出1,则YM 引脚为接地
XP_PST(WAIT_INT_MODE); = 3  X坐标Y坐标手动测量设置,设为3 表示等待中断模式
    最后调用函数指针tsEvent 所指向的函数。在s3c2410_get_XY 函数里面,应该表示这个驱动的设备文件已经打开,在打开设备文件函数中,tsEvent 函数指针就指向了tsEvent_raw 这个函数,也就是说,下面执行的是tsEvent_raw 函数。tsEvent_raw 函数负责填充触摸屏缓冲区,并唤醒等待的进程,该函数会在后面说明。

------------------------------------------------------------------------
static void tsEvent_raw(void)
    来看一下tsEvent_raw 这个函数。
if (tsdev.penStatus == PEN_DOWN)
{
  BUF_HEAD.x = x;
  BUF_HEAD.y = y;
  BUF_HEAD.pressure = PEN_DOWN;
   
    一上来就根据变量tsdev.penStatus 的状态值进行判断,若为笔按下,将从A/D转换器中采集的x轴y轴坐标以及笔按下的状态存入变量tsdev 中的buf 成员中的相应变量中。

#ifdef HOOK_FOR_DRAG
  ts_timer.expires = jiffies + TS_TIMER_DELAY;
  add_timer(&ts_timer);
#endif
    如果定义了笔拖曳,先将定时器的定时溢出值更新,然后调用add_timer 函数重新增加定时器计时,变量ts_timer 为struct timer_list 数据结构。
}
else
{
#ifdef HOOK_FOR_DRAG
  del_timer(&ts_timer);
#endif

    如果定义了笔拖曳,调用del_timer 函数来删除定时器,变量ts_timer 为struct timer_list 数据结构。

  BUF_HEAD.x = 0;
  BUF_HEAD.y = 0;
  BUF_HEAD.pressure = PEN_UP;
}
    若变量tsdev.penStatus 的状态值不是笔按下,则x轴y轴坐标写为0和笔抬起的状态一起存入变量tsdev 中的buf 成员中的相应变量中。
tsdev.head = INCBUF(tsdev.head, MAX_TS_BUF);
    其中INCBUF 宏函数定义如下:
#define INCBUF(x,mod)  ((++(x)) & ((mod) - 1))
由于这里MAX_TS_BUF=16,这样(mod) - 1)就为15(0x0F),所以这个宏函数相当于就是将变量tsdev.head 这个表示buf 头位置的值加1,然后取模16,即指向下一个buf ,形成一个在环形缓冲区上绕环的头指针。


本新闻共4页,当前在第3页  1  2  3  4  

对这篇文章您有更多的想法? 请去论坛发表意见吧   
“s3c2410触摸屏在linux下的驱动分析二” 的相关新闻
Linux系统下触摸屏的简单使用和配置方法 
s3c2410触摸屏在linux下的驱动分析一助力触摸屏 奇趣引领移动Linux
天绘电子白板在LINUX系统下的应用为标准触摸屏接口硬件编写驱动程序
【江苏南京】维达前线
【四川成都】东骏博锐
【山西太原】鑫 远 望
【云南昆明】昆明德添
【福建厦门】厦门卓远
【福建福州】首钢环星
【山东济南】鸿飞触控
站内搜索 站内搜索
选择搜索类别:
软件开发 软件开发
Toucher2.2在线演示
时代广场软件首页
成都市勘察测绘研究院软件首页
眉山经济贸易委员会软件首页
推荐新闻 推荐新闻
友达、华映将推新品,电
Toucher触摸屏浏览器4.0
Toucher触摸屏浏览器V4.
Toucher触摸屏浏览器4.0
在便携设备中应用电容式
KTV市场触摸屏 又掀娱乐
山东青岛触摸屏项目招标
设为首页加入收藏网站地图友情链接联系我们  |  广告联系 |
网站广告、经销商加盟、触摸屏软件销售:13183843395 028-85582323 联系人:张小姐 杜先生 传真:028-85582323
   四 川   028-81934978 云 南   0871-5109466 南 京   025-83610010
   上 海   13816713998 山 西   0351-7321227 苏 州   0512-65581867
   厦 门   0592-5615268 福州    0591-87611230 北 京   010-62631382
   山 东   13396407999 重 庆   023-68609756 武 汉   027-87851201
   广 东   020-87507489 泉 州  0595-88150378 凯 里  0855-8220226
   贵 阳  0851-5566120 浙 江  13805704917 其 他… 028-85582323
电子邮件: 51touch(A)126.com 请将地址中的"(A)"改成"@",避免垃圾邮件出此下策,望谅
版权所有 Copyright© 2003-2006 触摸屏在线 地址:成都市倪家桥8号 邮编:610041

在线咨询QQ: 43361182   

触摸屏、触摸屏软件、触控一体机咨询