单片机编程中,在规定时间内完成某个动作
写程序的时候遇到这样的问题,比如5秒之内必须完成某个动作,我会这样写if(time<5S)
{
FUNC();
}
超过5秒之后,就不能再执行函数FUNC()。超过5秒之后,还用C语言进行表示吗?比如,
If(time>=5s)
{
break;
}
请各位多指教,谢谢。 加大time长度,使其在程序生命期间不溢出就可以了,比如32位计数秒
然后直接
if(time<5S)
{
FUNC();
}
就可以了
这只适合一次性的,不适合重复性的,一次性可以不需要这么长的计数器,可以通过增加标志位来解决
static bit bExeOk = 0;
if (!bExeOk)
{
if (SecCnt < 5)
{
FUNC();
}
else
{
bExeOk = 1;
}
} ayb_ice 发表于 2022-1-10 10:50
加大time长度,使其在程序生命期间不溢出就可以了,比如32位计数秒
然后直接
if(time ...
好的好的,谢谢您,豁然开朗。 FUNC();的执行时间能否确定?如果能确定在执行FUNC();前判断剩余时间是否充足否则不执行即可
页:
[1]