首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mbed 5 c++编程

mbed 5 c++编程
EN

Stack Overflow用户
提问于 2018-05-31 07:23:58
回答 1查看 146关注 0票数 1
代码语言:javascript
复制
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循环中只能调用一次,我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 07:31:03

添加布尔标志。当条件为真时,设置标志,如果为false,则清除标志。

结合条件使用此标志,以知道何时调用哪个函数。

示例:

代码语言:javascript
复制
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();
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50618867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档