本人想在屏幕上设计一个触摸滑块,效果类似于Windows任务栏右下角的音量控制,但写完后发现触摸屏虽然可以正常工作且在规定范围内滑块也可以正常移动,但是当按住滑块不放把滑块向规定范围之外拖动时便会死机(至少看起来是这样,指示灯不再闪烁,ADC也不动),滑块想再拖回去也不可能了,类似于通过鼠标控制windows的音量时,鼠标把音量滑块拖到最大时依然向上移动鼠标,但windows显然不会因为这个问题死机,而且滑块到达最大后也不再改变位置,我想要的就是这个效果但总是死机,主要代码如下(在原子哥的代码基础上改的),希望高手帮忙看看
void Touch_Sensor()
{
u16 Y0,Y1;
LCD_Fill(190,Y0,220,Y1,BLACK);
if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下
{
Pen_Int_Set(0);//关闭中断
do
{
Convert_Pos();
Pen_Point.Key_Sta=Key_Up;
if(Pen_Point.X0>190&&en_Point.X0<220&&en_Point.Y0>100&&en_Point.Y0<220)
{
Y0 = Pen_Point.Y0-10;
Y1 = Pen_Point.Y0+10;
LCD_Fill(190,Y0,220,Y1,BLACK);
LCD_Fill(190,100,220,Y0,WHITE);
LCD_Fill(190,Y1,220,220,WHITE);
GPIOC->ODR|=1<<1;
}
else
{
GPIOC->ODR|=1<<1; //PC1 上拉
break;
}
}
// while(TOUCH_PEN==0);
while((TOUCH_PEN==0)&&(Pen_Point.X0>190)&&(Pen_Point.X0<220)&&(Pen_Point.Y0>100)&&(Pen_Point.Y0<220)); //如果PEN一直有效,则一直执行
Pen_Int_Set(1);//开启中断
}else delay_ms(1);
}
0