最近在调4.3的触摸屏,我写的程序想实现当按下按钮时,被按下的那一块区域变黑,然后返回一个值进行处理。但下载上测试时按下去以后黑色区域就会在闪,但我想让他识别出长按的这种状态,试了几个思路都不好使,求助一下应该如何解决,这是我的触摸屏程序代码
[mw_shl_code=c,true]u8 GUI_TOUCH_DISP(void)
{
u8 t=0;
tp_dev.scan(0);
if(tp_dev.sta&TP_PRES_DOWN)//??????·???????????
{
if(tp_dev.x[0]>=356&&tp_dev.x[0]<=416&&tp_dev.y[0]>=252&&tp_dev.y[0]<=274) //I-V
{
while(PEN==0)
{
LCD_Fill(356,252,416,274,BLACK);
}
LCD_Fill(356,252,416,274,0XF79E);
Show_Str(378,260,240,12,"I-V",12,1);
return 1;
}
else if(tp_dev.x[0]>=356&&tp_dev.x[0]<=416&&tp_dev.y[0]>=288&&tp_dev.y[0]<=310) //R-P
{
while(PEN==0)
{
LCD_Fill(356,288,416,310,BLACK);
}
LCD_Fill(356,288,416,310,0XF79E);
Show_Str(378,295,240,12,"R-P",12,1);
return 2;
}
else if(tp_dev.x[0]>=356&&tp_dev.x[0]<=416&&tp_dev.y[0]>=324&&tp_dev.y[0]<=346) //L-MV
{
while(PEN==0)
{
LCD_Fill(356,324,416,346,BLACK);
}
LCD_Fill(356,324,416,346,0XF79E);
Show_Str(374,331,240,12,"L-MV",12,1);
return 3;
}
else if(tp_dev.x[0]>=356&&tp_dev.x[0]<=416&&tp_dev.y[0]>=360&&tp_dev.y[0]<=382) //L-MC
{
while(PEN==0)
{
LCD_Fill(356,360,416,382,BLACK);
}
LCD_Fill(356,360,416,382,0XF79E);
Show_Str(374,368,240,12,"L-MC",12,1);
return 4;
}
else if(tp_dev.x[0]>=356&&tp_dev.x[0]<=416&&tp_dev.y[0]>=396&&tp_dev.y[0]<=418) //MC-MV
{
while(PEN==0)
{
LCD_Fill(356,396,416,418,BLACK);
}
LCD_Fill(356,396,416,418,0XF79E);
Show_Str(371,404,240,12,"MC-MV",12,1);
return 5;
}
else if(tp_dev.x[0]>=452&&tp_dev.x[0]<=535&&tp_dev.y[0]>=397&&tp_dev.y[0]<=419) //????
{
while(PEN==0)
{
LCD_Fill(452,397,535,419,BLACK);
}
LCD_Fill(452,397,535,419,0XF79E);
Show_Str(483,401,240,12,"????",12,1);
return 6;
}
else if(tp_dev.x[0]>=452&&tp_dev.x[0]<=535&&tp_dev.y[0]>=324&&tp_dev.y[0]<=346) //????
{
while(PEN==0)
{
LCD_Fill(452,324,535,346,BLACK);
}
LCD_Fill(452,324,535,346,0XF79E);
Show_Str(483,331,240,12,"????",12,1);
return 7;
}
else if(tp_dev.x[0]>=452&&tp_dev.x[0]<=535&&tp_dev.y[0]>=252&&tp_dev.y[0]<=274) //??·?
{
while(PEN==0)
{
LCD_Fill(452,252,535,274,BLACK);
}
LCD_Fill(452,252,535,274,0XF79E);
Show_Str(482,259,240,12,"??·?",12,1);
return 8;
}
else if(tp_dev.x[0]>=593&&tp_dev.x[0]<=660&&tp_dev.y[0]>=300&&tp_dev.y[0]<=322) //????
{
while(PEN==0)
{
LCD_Fill(593,300,660,322,BLACK);
}
LCD_Fill(593,300,660,322,0XF79E);
Show_Str(615,306,240,12,"????",12,1);
return 9;
}
else if(tp_dev.x[0]>=712&&tp_dev.x[0]<=780&&tp_dev.y[0]>=49&&tp_dev.y[0]<=73) //????
{
while(PEN==0)
{
LCD_Fill(712,49,780,73,BLACK);
}
LCD_Fill(712,49,780,73,0XF79E);
Show_Str(731,57,240,12,"????",12,1);
return 10;
}
else if(tp_dev.x[0]>=717&&tp_dev.x[0]<=772&&tp_dev.y[0]>=91&&tp_dev.y[0]<=112) //????????
{
while(PEN==0)
{
LCD_Fill(717,91,772,112,BLACK);
}
LCD_Fill(717,91,772,112,0XF79E);
Show_Str(722,97,240,12,"????????",12,1);
return 11;
}
else if(tp_dev.x[0]>=717&&tp_dev.x[0]<=772&&tp_dev.y[0]>=133&&tp_dev.y[0]<=154) //????
{
while(PEN==0)
{
LCD_Fill(717,133,772,154,BLACK);
}
LCD_Fill(717,133,772,154,0XF79E);
Show_Str(730,138,240,12,"????",12,1);
return 12;
}
else if(tp_dev.x[0]>=717&&tp_dev.x[0]<=772&&tp_dev.y[0]>=181&&tp_dev.y[0]<=202) //????±?·?
{
while(PEN==0)
{
LCD_Fill(717,181,772,202,BLACK);
}
LCD_Fill(717,181,772,202,0XF79E);
Show_Str(722,186,240,12,"????±?·?",12,1);
return 13;
}
else if(tp_dev.x[0]>=717&&tp_dev.x[0]<=772&&tp_dev.y[0]>=222&&tp_dev.y[0]<=244) //????×???
{
while(PEN==0)
{
LCD_Fill(717,222,772,244,BLACK);
}
LCD_Fill(717,222,772,244,0XF79E);
Show_Str(722,229,240,12,"????×???",12,1);
return 14;
}
else if(tp_dev.x[0]>=717&&tp_dev.x[0]<=772&&tp_dev.y[0]>=264&&tp_dev.y[0]<=286) //?á??×???
{
while(PEN==0)
{
LCD_Fill(717,264,772,286,BLACK);
}
LCD_Fill(717,264,772,286,0XF79E);
Show_Str(722,270,240,12,"?á??×???",12,1);
return 15;
}
else if(tp_dev.x[0]>=712&&tp_dev.x[0]<=777&&tp_dev.y[0]>=306&&tp_dev.y[0]<=328) //?á??
{
while(PEN==0)
{
LCD_Fill(712,306,777,328,BLACK);
}
LCD_Fill(712,306,777,328,0XF79E);
Show_Str(733,312,240,12,"?á??",12,1);
return 16;
}
else
return 0;
delay_ms(5);
} [/mw_shl_code]
|