金牌会员
 
- 积分
- 2248
- 金钱
- 2248
- 注册时间
- 2019-8-7
- 在线时间
- 364 小时
|
10金钱
每当我按下触摸屏的时候,我滴答定时器的延时会自动结束,感觉好奇怪,不知道有没有大佬知道原因的怎么解决它。
代码:
void delay_xms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms; //时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;//关闭计数器
SysTick->VAL =0X00; //清空计数器
}
触摸屏中断:
void EXTI9_5_IRQHandler(void)
{
u8 value;
if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
{
AutoOFF_Time=0;
value=LightDark_Control(BackLightCountrol_CLOSE);
if(value==1)//当屏幕熄灭时触发 防止误触
{
while(1)
{
GT911_Scan();
if(!(tp_dev.sta&TP_PRES_DOWN))break;
IWDG_Feed(); //看门狗
}
}
GT911_Scan();//按键扫描函数
BEEP_FeedBack();
EXTI_ClearITPendingBit(EXTI_Line5);//清除中断标志位
}
}
|
|