主题 : 触摸屏驱动 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 3501
精华: 0
发帖: 52
金钱: 530 两
威望: 530 点
综合积分: 104 分
注册时间: 2009-01-14
最后登录: 2009-06-16
楼主  发表于: 2009-04-22 18:04

 触摸屏驱动

驱动程序中的ad中断和触屏中断到底各起什么作用啊?
级别: 侠客
UID: 4843
精华: 0
发帖: 102
金钱: 810 两
威望: 554 点
综合积分: 204 分
注册时间: 2009-03-31
最后登录: 2012-11-14
1楼  发表于: 2009-04-24 13:39
启动AD转换,用以计算触摸的位置。
级别: 侠客
UID: 3501
精华: 0
发帖: 52
金钱: 530 两
威望: 530 点
综合积分: 104 分
注册时间: 2009-01-14
最后登录: 2009-06-16
2楼  发表于: 2009-05-06 15:16
为什么触摸屏中断和ad中断都要读AD?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-05-06 15:28
引用第2楼cocies于2009-05-06 15:16发表的  :
为什么触摸屏中断和ad中断都要读AD?

不为什么,硬件就是这样设计的
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 3501
精华: 0
发帖: 52
金钱: 530 两
威望: 530 点
综合积分: 104 分
注册时间: 2009-01-14
最后登录: 2009-06-16
4楼  发表于: 2009-05-06 15:58

 回 3楼(kasim) 的帖子

谢谢,这样不是重复操作吗?我认为,应该是当笔按下时产生触摸屏中断,然后进行ad转换,ad转换完成后,引起ad中断,ad中断服务程序中来读数据。您不认为我说的更合理些吗?请指点,谢谢!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2009-05-06 16:13

 Re:回 3楼(kasim) 的帖子

引用第4楼cocies于2009-05-06 15:58发表的 回 3楼(kasim) 的帖子 :
谢谢,这样不是重复操作吗?我认为,应该是当笔按下时产生触摸屏中断,然后进行ad转换,ad转换完成后,引起ad中断,ad中断服务程序中来读数据。您不认为我说的更合理些吗?请指点,谢谢!

是的,本来就是这样的
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 3501
精华: 0
发帖: 52
金钱: 530 两
威望: 530 点
综合积分: 104 分
注册时间: 2009-01-14
最后登录: 2009-06-16
6楼  发表于: 2009-05-07 21:29

 回 5楼(kasim) 的帖子

可是他的两个中断服务程序中,都读了ad,按我上面的说法只需要在ad中断服务程序中读就可以了,还有学长,以下部分是什么意思啊?
if ((info->presc&0xff) > 0)
        writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\        
                 base_addr+S3C2410_ADCCON);      
    else
        writel(0,base_addr+S3C2410_ADCCON);