C++如何做定时器?

esyap4oy  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(209)

我正在使用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);
        }
    }
}
4szc88ey

4szc88ey1#

这里是你提供的代码的更新版本,它将做你想要的。

#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
    }
}

相关问题