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 标志。当条件为真时设置标志,当条件为假时清除标志。
结合条件使用这个标志来知道什么时候调用哪个函数。
例子:
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();
}
}
}
关于c++ - mbed os 5 c++ 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50618867/