新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2016-10-31
- 在线时间
- 1 小时
|
1金钱
电容屏。 触摸无反应。以下是资料中的示例代码。中间有个if(tp_dev.x[t]<lcddev.width&&tp_dev.y[t]<lcddev.height),这个语句一直是FALSE,进入不了这个IF,如果将小于号都改成大于,能进入,但是会自动画斜线。
自己尝试将没碰到屏幕时的tp_dev.x[t] tp_dev.y[t]的值显示到屏幕上,的确时有值,5点的值均为(235,215),明显是小于屏幕高度宽度的(输出了lcddev.height lcddev.width 的确是800 480),不知道各位有没有碰到类似的问题,是怎么解决的。被困扰好久了。。。
void ctp_test(void)
{
u8 t=0;
u8 i=0;
u16 lastpos[5][2]; //最后一次数据
while(1)
{
tp_dev.scan(0);
for(t=0;t<OTT_MAX_TOUCH;t++)
{
if((tp_dev.sta)&(1<<t))
{
if(tp_dev.x[t]<lcddev.width&&tp_dev.y[t]<lcddev.height)
{
if(lastpos[t][0]==0XFFFF)
{
lastpos[t][0] = tp_dev.x[t];
lastpos[t][1] = tp_dev.y[t];
}
lcd_draw_bline(lastpos[t][0],lastpos[t][1],tp_dev.x[t],tp_dev.y[t],2,POINT_COLOR_TBL[t]);画线
lastpos[t][0]=tp_dev.x[t];
lastpos[t][1]=tp_dev.y[t];
if(tp_dev.x[t]>(lcddev.width-24)&&tp_dev.y[t]<20)
{
Load_Drow_Dialog();//清除
}
}
}else lastpos[t][0]=0XFFFF;
}
delay_ms(5);i++;
if(i%20==0)LED0=!LED0;
}
}
|
|