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循环中只能调用一次,我该怎么做?
发布于 2018-05-31 07:31:03
添加布尔标志。当条件为真时,设置标志,如果为false,则清除标志。
结合条件使用此标志,以知道何时调用哪个函数。
示例:
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();
}
}
}https://stackoverflow.com/questions/50618867
复制相似问题