我正在使用
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);
}
}
}
这是您提供的代码的更新版本,它将执行您想要的操作。
#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
}
}