打印
[MCU]

单片机编程中,在规定时间内完成某个动作

[复制链接]
929|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HLHG|  楼主 | 2022-1-10 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写程序的时候遇到这样的问题,比如5秒之内必须完成某个动作,我会这样写
if(time<5S)
{
FUNC();
}
超过5秒之后,就不能再执行函数FUNC()。超过5秒之后,还用C语言进行表示吗?比如,
If(time>=5s)
{
break;
}
请各位多指教,谢谢。

使用特权

评论回复

相关帖子

沙发
ayb_ice| | 2022-1-10 10:50 | 只看该作者
加大time长度,使其在程序生命期间不溢出就可以了,比如32位计数秒
然后直接
if(time<5S)
{
    FUNC();
}
就可以了
这只适合一次性的,不适合重复性的,一次性可以不需要这么长的计数器,可以通过增加标志位来解决
static bit bExeOk = 0;

if (!bExeOk)
{
    if (SecCnt < 5)
    {
        FUNC();
    }
    else
    {
        bExeOk = 1;
    }
}

使用特权

评论回复
板凳
HLHG|  楼主 | 2022-1-10 12:41 | 只看该作者
ayb_ice 发表于 2022-1-10 10:50
加大time长度,使其在程序生命期间不溢出就可以了,比如32位计数秒
然后直接
if(time ...

好的好的,谢谢您,豁然开朗。

使用特权

评论回复
地板
shipeng1989| | 2022-1-11 08:13 | 只看该作者
FUNC();的执行时间能否确定?如果能确定在执行FUNC();前判断剩余时间是否充足否则不执行即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

66

帖子

0

粉丝