关于待机唤醒实验中WK_UP按下3s 是如何实现计时的问题

2019-07-21 05:09发布

在看待机唤醒的例程的时候,
u8 Check_WKUP(void)
{
u8 t=0; //记录按下的时间
LED0=0; //亮灯DS0
while(1)
{
  if(WKUP_KD)
  {
   t++;   //已经按下了
   delay_ms(30);
   if(t>=100)  //按下超过3秒钟
   {
    LED0=0;   //点亮DS0
    return 1;  //按下3s以上了
   }
  }else
  {
   LED0=1;
   return 0; //按下不足3秒
  }
}
}
所标注部分是怎么用t实现计时3s的啊?不是延迟了30ms吗,怎么变成3s的?
是要计算这个循环的执行时间吗?如果是的话又是怎么计算循环执行时间的呢?
因为是初学者,有很多简单问题还不太明白,在网上找了找也没有找到,希望大家不要嫌弃
感谢各位的解答!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
MrXiong
1楼-- · 2019-07-22 07:35
毕竟爱mitty 发表于 2017-6-28 23:32
我又来求助了
我自己写的代码有点问题,但是编译通过而且下到板子上了
现在板子待机了。。。但是我 ...

如果代码没问题的话你先下载个跑马灯的例程进去,然后再烧写唤醒实验看看是哪里不正常,如果判定是代码问题的话,再把代码贴出来
毕竟爱mitty
2楼-- · 2019-07-22 09:56
MrXiong 发表于 2017-6-28 23:54
现在是怎么个现象

>.<本来是一直在待机状态没办法唤醒
所以st仿真没办法进行,我以为没办法下载例程了,
现在发现直接下到板子里一个例程就可以了
已经解决啦,
非常感谢你

一周热门 更多>