查询触摸屏 | 工业触摸屏
登陆:用户 密码
网站首页 | 触摸屏资讯 | 触控一体机 | 触摸屏屏幕 | 触摸屏机柜 | 触摸显示器 |  触摸控制器 | 自助终端 | 呼叫系统 | 触摸屏论坛
电子大屏 | 触摸屏外设 | 考勤排队机 | 触摸屏新品 | 解决之方案 | 选购与维护 |  驱动与软件 | 数字城市 | POS 系统 | 触摸屏软件
触摸屏浏览器Toucher V4.1正式发   浙江杭州宏拓科技发展有限公司联   新疆诚信行商贸有限公司联系方式   福建省泉州卓远科技限公司联系方   Toucher触摸屏浏览器4.0正式发布   Toucher触摸屏浏览器4.0正式发布   广东省广州市3M誉思电子科技有限   欢迎加入中国触摸屏网群   广州市力麒贸易有限公司重庆分公   上海尚科信息技术有限公司    全国触摸屏销售热线:【请点击】
导航: 首页 >> 选购与维护 >> 触摸屏技术 >> 正文 全国触摸屏销售热线:(点击查看)
全国触摸屏经销商
【浙江杭州】杭州宏拓
【新疆乌市】新疆诚信行
【上 海 市】尚科触控
【贵州凯里】贵州易通
【福建泉州】泉州卓远
【广东广州】3M誉思触控
【重 庆 市】重庆力麒
【湖北武汉】武汉力麒
【北 京 市】北京联控
【江苏苏州】苏州名雅
s3c2410触摸屏在linux下的驱动分析一  
s3c2410触摸屏在linux下的驱动分析一
副标题:s3c2410触摸屏在linux下的驱动分析一
日期:2008-03-18 22:50:39     来源:雪竹的BLOG   编辑:51Touch 

 触摸屏驱动在/kernel/drivers/char/s3c2410-ts.c 文件中。
该驱动总要有以下重要数据结构:
 1.触摸屏的file_operations
static struct file_operations s3c2410_fops={
    owner: THIS_MODULE,
    open: s3c2410_ts_open,
    read: s3c2410_ts_read,
    release: s3c2410_ts_release,
#ifdef USE_ASYNC
    fasync: s3c2410_ts_fasync,
#endif
    poll: s3c2410_ts_poll,
};
 2.全局变量TS_DEV结构体,用来保存触摸屏的相关参数、等待处理的消息队列、当前采样数据、上一次采样数据等信息
typedef struct {
    unsigned int penStatus;
    TS_RET buf[MAX_TS_BUF];
    unsigned int head, tail;
    wait_queue_head_t wq; /
 wait_down_int();

     函数request_irq 是Linux 系统中驱动程序注册中断的方法。irq 为所要申请的硬件中断号,handler 为系统所注册的中断处理子程序,irq_flags 为申请时的选项,devname 为指向设备名称的字符指针,dev_id 为申请时告诉系统的设备标识。若中断申请成功则返回0,失败则返回负值。
ret = request_irq(IRQ_ADC_DONE, s3c2410_isr_adc, SA_INTERRUPT,
           DEVICE_NAME, s3c2410_isr_adc);
    调用该函数来进行A/D转换的中断注册,所要申请的硬件中断号为IRQ_ADC_DONE(62),在arch/irq s.h中定义;系统所注册的中断处理子程序为s3c2410_isr_adc 函数;申请中断选项为SA_INTERRUPT,表示中断处理程序是快速处理程序,即快速处理程序运行时,所有中断都被屏蔽;设备名称定义为DEVICE_NAME,即"s3c2410-ts";而设备标识仍然用中断处理子程序代替。

ret = request_irq(IRQ_TC, s3c2410_isr_tc, SA_INTERRUPT,
          DEVICE_NAME, s3c2410_isr_tc);
    接着继续调用该函数来进行触摸屏触摸的中断注册,所要申请的硬件中断号为IRQ_TC(61);系统所注册的中断处理子程序为s3c2410_isr_tc 函数;申请中断选项为SA_INTERRUPT,表示中断处理程序是快速处理程序,即快速处理程序运行时,所有中断都被屏蔽;设备名称定义为DEVICE_NAME,即"s3c2410-ts";而设备标识仍然用中断处理子程序代替。

wait_down_int();
    调用该宏函数来设置触摸屏为等待中断模式【笔按下产生中断】,具体定义如下:
#define wait_down_int() { ADCTSC = DOWN_INT | XP_PULL_UP_EN | \
    XP_AIN | XM_HIZ | YP_AIN | YM_GND | \
    XP_PST(WAIT_INT_MODE); }
    用该宏函数来设置ADC 触摸屏控制寄存器,参考S3C2410 芯片datasheet 中关于触摸屏的章节,具体设置参数如下:
DOWN_INT = 1<<8 * 0  该位保留且应该设为0 【笔按下或笔抬起中断信号控制位,设为0 表示笔按下产生中断信号】
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 表示等待中断模式

#ifdef CONFIG_DEVFS_FS
devfs_ts_dir = devfs_mk_dir(NULL, "touchscreen", NULL);
devfs_tsraw = devfs_register(devfs_ts_dir, "0raw", DEVFS_FL_DEFAULT,
       tsMajor, TSRAW_MINOR, S_IFCHR | S_IRUSR | S_IWUSR,
       &s3c2410_fops, NULL);
#endif
   这里调用了devfs_mk_dir 函数,在设备文件系统中创建了一个名为touchscreen 的目录,并返回一个带有目录结构的数据结构变量devfs_ts_dir。将该变量作为下一步devfs_register 函数的参数,该参数在调用设备文件系统注册清除函数devfs_unregister 时也要作为参数传入。
    调用devfs_register 函数后,会在刚才创建的touchscreen 目录下再创建一个名为0raw 的设备文件节点。该函数的参数中,DEVFS_FL_DEFAULT 为该函数的标志选项,tsMajor 为注册字符设备时系统自动分配的主设备号,TSRAW_MINOR(1)为次设备号,S_IFCHR | S_IRUSR | S_IWUSR 为默认的文件模式,&s3c2410_fops 为传入内核的触摸屏file_operations 结构中的函数接口,私有数据指针为空。返回一个devfs_handle_t 数据结构的变量devfs_tsraw,这会在调用设备文件系统注册清除函数devfs_unregister 时作为参数传入。
 

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

对这篇文章您有更多的想法? 请去论坛发表意见吧   
“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   

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