harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
阅读:5151回复:11

决不藏私:S3C2440/6410 TOUCH抖动问题彻底解决-超级完美

楼主#
更多 发布于:2009-09-23 11:28
#define TSP_SAMPLE_NUM 20
#define TSP_ADC_DELAY = 4000;
至于调用的TIMER中断,每秒次数降到50次即可
#define TSP_SAMPLE_RATE_LOW    (50)        // 50 Samples per Sec
#define TSP_SAMPLE_RATE_HIGH    (50)    // 50 Samples per Sec
(需确认PCLK和PWM_REGS算出来的每秒中断次数是不是符合50次)

如此一来,抖都不抖,且反映够快,且占用系统时间短
当初我是抓TOUCH会干扰串口的情况,就强迫好好的看TOUCH驱动,
才发现..大家的(官方的)做法有疑异:

TSP_ADC_DELAY大家都用10000,20000,40000这三种参数,
其实这是错的,把ADC的DELAY时间延长,大家的意思可能是让信号多点时间稳定,
但ADC转换本身就有误差,把时间延长并不能把信号更稳定,反而消耗系统时间而已.

所以我把TSP_ADC_DELAY缩短,把读取平均次数TSP_SAMPLE_NUM加大,
让cpu多读几次;多些数据累加平均,一试BINGO!!

而且有效降低TOUCH占用中断的时间,
上述的设定是占用2.1msec(从中断进入到离开中断)
但如果改为:
#define TSP_SAMPLE_NUM 10
#define TSP_ADC_DELAY = 2000;
占用可降低至0.15msec,虽然不抖了,但偶尔会发生位置编离的情况
如果不在意佔用时间的兄弟,可先把最上面的设定打进去,再来优化.

so,改好了吗?
是不是TOCUH连抖都不抖了,
如果还会抖,就是你的手在抖了 ^_^
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-23 11:35
好贴,收藏起来
WINCE/EVC/VS2005群:18219722
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-09-30 10:08
技术贴,mark!
evergreen7
驱动牛犊
驱动牛犊
  • 注册日期2009-03-22
  • 最后登录2010-04-02
  • 粉丝1
  • 关注0
  • 积分43分
  • 威望431点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-01-01 19:44
mark~~~~
cy757
驱动牛犊
驱动牛犊
  • 注册日期2005-07-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望68点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-01-02 22:31
请问楼主使用的分辨率是多少的啊?
weixp
驱动牛犊
驱动牛犊
  • 注册日期2003-10-31
  • 最后登录2010-02-07
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望60点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-02-07 11:14
表示敬意
shenmou
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望120点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-03-18 14:39
mark
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-03-23 14:20
我顶
[url]http://sniper167.bokee.com[/url]
aggio
驱动牛犊
驱动牛犊
  • 注册日期2010-03-31
  • 最后登录2010-05-05
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望91点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2010-03-31 20:15
学习,不错,很好
hostinglian
驱动牛犊
驱动牛犊
  • 注册日期2009-07-16
  • 最后登录2010-04-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2010-04-10 15:48
好贴,收藏之
linwang2008
驱动牛犊
驱动牛犊
  • 注册日期2010-05-11
  • 最后登录2010-07-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2010-05-24 16:08
这个方法在6410的7寸屏里不行啊,只能减小抖动的范围而已,还不能做到像4.3寸屏那样的效果!
大哥,能指点一下7寸的屏要怎么做?
maisheng
驱动牛犊
驱动牛犊
  • 注册日期2007-04-03
  • 最后登录2011-09-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望58点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2011-09-03 22:16
感觉6410的AD性能很差 同样的驱动和电路 在2440下没问题 但是6410抖动严重(800*600)
游客

返回顶部