电容触摸屏

2019-07-20 05:04发布

学习完电容触摸屏之后在屏幕上画了一个正方形,想要实现点击正方形区域内会实现led灯的翻转,但是好像点了一下会翻转好几次,加了延时函数也没用,请原子哥看看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
peng1554
1楼-- · 2019-07-20 05:54
[mw_shl_code=c,true]//电容触摸屏测试函数
void ctp_test(void)
{
        u8 t=0;
        u8 i=0;                      
        u16 lastpos[5][2];                //记录最后一次的数据
        while(1)
        {       
                LCD_DrawRectangle(150, 350, 330, 450);
                LCD_ShowString(200,390,100,16,16,"LED1");
                tp_dev.scan(0);
                for(t=0;t<CT_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]>150&&tp_dev.x[t]<330&&tp_dev.y[t]>350&&tp_dev.y[t]<450)
                                        {       
                                                while((tp_dev.sta)&(1<<0))
                                                {
                                                        tp_dev.scan(0);
                                                }
                                                delay_ms(500);
                                                LED1=!LED1;

                                        }
                                }
                        }else lastpos[t][0]=0XFFFF;
                }
               
                delay_ms(5);i++;
                if(i%20==0)LED0=!LED0;
        }       
}[/mw_shl_code]用的4.3寸MCU屏,这么写不会导致触摸屏按下的时候翻转三次电平
车神泽
2楼-- · 2019-07-20 11:04
 精彩回答 2  元偷偷看……
车神泽
3楼-- · 2019-07-20 15:16
非常感谢,请问这是什么原因,你以前好像也遇到跟我一样的问题
车神泽
4楼-- · 2019-07-20 16:04
[mw_shl_code=c,true] while((tp_dev.sta)&(1<<0))
                        {
                            tp_dev.scan(0);
                        } [/mw_shl_code]


好像这个是精髓?

一周热门 更多>