C++定时器怎么做?

问题描述 投票:0回答:1

我正在使用

mbed.h
开发嵌入式系统。我想在 60 秒内每次按下按钮时增加计数器变量,所以我必须创建一个计时器并计算 60 秒内按下按钮的次数。

#include "mbed.h"
#include "time.h"

DigitalOut user_led(PA_5);
Ticker t;

void toggleLED(){
    user_led =! user_led;

}

int main()
{
    int counter = 0;
    clock t = new clock();
    while (true){
        if (user_led){
            counter += 1;
            t.attach(&toggleLED ,1s);
        }
    }
}
c++ mbed
1个回答
0
投票

这是您提供的代码的更新版本,它将执行您想要的操作。

#include "mbed.h"
#include "time.h"

DigitalOut user_led(PA_5);
InterruptIn button(USER_BUTTON);
Ticker ticker;
void toggleLED() {
    user_led = !user_led;
}
int main() {
    int counter = 0;
    time_t start_time = time(NULL);
    ticker.attach(&toggleLED, 1s);
    button.fall([&]() {
        time_t current_time = time(NULL);
        if (difftime(current_time, start_time) <= 60) {
            counter++;
        } else {
            counter = 0;
            start_time = current_time;
        }
    });
    while (true) {
        //while true do nothing
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.