保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

触摸屏在S3C2410上的应用实例


使用9次采集,分别记入到ptx[TouchSample]和pty[TouchSample]数组中,TouchSample为采集次数。

为了减少运算量,将ptx[]和pty[]分别分三组取平均值,存储在px[3]和py[3]中。这里以处理X坐标为例:

px[0]=(ptx[0]+ptx[1]+ptx[2])/3;

px[1]=(ptx[3]+ptx[

4]+ptx[5])/3;

px[2]=(ptx[6]+ptx[7]+ptx[8])/3;

计算以上三组数据的差值:

dlXDiff0=px[0]-px[1];

dlXDiff1=px[1]-px[2];

dlXDiff2=px[2]-px[0];

然后对上述差值取绝对值,所得结果简称绝对差值:

dlXDiff0=dlXDiff0>0?dlXDiff0:-dlXDiff0;

dlXDiff1=dlXDiff1>0?dlXDiff1:-dlXDiff1;

dlXDiff2=dlXDiff2>0?dlXDiff2:-dlXDiff2;

判断上述计算的色对差值是否都超过差值门限,如果这3个绝对差值都超过门限值,判定这次采样点为野点,抛弃采样点,程序返回等待下次采样。其中的差值门限需要根据试验测试得到,本文取值为2。

找出其中绝对差值最小的2组数据,再将它们作平均,同时赋值给tmx:

if(dlXDiff0<dlXDiff1){

if(dlXDiff2<dlXDiff0){

tmx=((px[0]+px[2]>>1);

}

else{

tmx=((px[0]+px[1])>>1);

}

}

else if(dlXDiff2<dlXDiff1){

tmx=((px[0]+px[2])>>1);

}

else{

tmx=((px[1]+px[2])>>1);

}

图3

    函数Touch_Coordinate Conversion完成触摸屏采样值转换成显示坐标,根据不同的硬件有不同的转换方法。本触摸屏采样坐标及显示坐标如图4、图5所示。其中TOUCH_MAX_X和TOUCH_MIN_X是触摸屏X坐标采样值的最大和最小值;Y坐标同理。可以运行本文程序,同时使用触摸笔在触摸屏的4个角取得最大最小采样值。这里使用的是320×240的TFT屏,所以TOUCH_X值为320。下面是X坐标的转换程序:

Touch_CoordinateConversio(int*px){

TmpX=(tmx>=TOUCH_MAX_X)?(TOUCH_MAX_X):*px;

TmpX-=TOUCH_MIN_X;

《触摸屏在S3C2410上的应用实例(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145551.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。