mbed os 5 c++ programming

mbed os 5 c++ programming

本文关键字:programming c++ os mbed      更新时间:2023-10-16
void rise_handler() { timer.start();}
void fall_handler() { timer.stop(); }
void signal() {
while(1) {
if (num > 0.5) {
rise_handler();
} 
else {
fall_handler();
}
}
}

我有一个来自传感器的输入,它随着时间的推移而变化。当 num 大于 0.5 时,我该怎么办,在 while 循环中只会调用一次?

添加一个布尔标志。当条件为真时,您设置标志,当条件为假时,您清除标志。

将此标志与条件结合使用,以了解何时调用哪个函数。

例:

bool flag = false;
while (1)
{
if (num > 0.5)
{
if (!flag)
{
// First time above the threshold
flag = true;
rise_handler();
}
}
else
{
if (flag)
{
// First time below the threshold
flag = false;
fall_handler();
}
}
}