gpt4 book ai didi

c - 按钮中断和按钮按下时间超过 3 秒

转载 作者:行者123 更新时间:2023-11-30 15:45:41 25 4
gpt4 key购买 nike

在我的项目中,我有三个按钮,每个按钮都会触发一个功能。

这个函数必须做两件事,一个是按下按钮时执行的操作(实际工作),但我想添加第二个功能,其中如果按下按钮超过 3 秒,它会执行一些操作,例如调用函数。

到目前为止,我正在初始化中断:

attachInterrupt(0, footOne, Falling);

其功能是:

void footOne(){
static unsigned long last_interrupt_time = 0;
unsigned long interrupt_time = millis();
// Debounce
if (interrupt_time - last_interrupt_time > 200){
//Do things
if(debug==1){Serial.println("Button 1 pressed!");}
}

last_interrupt_time = interrupt_time;
}

现在我想知道如何更改功能以添加按下按钮超过 3 秒的可能性...

记住这个函数是从中断中调用的。

谢谢!

最佳答案

按照您现在构建程序的方式,您将需要一个外部 RTC 来执行此任务。一旦启动中断,arduino 上的内部时钟就会受到损害,因此在离开中断之前无法可靠地使用。您的实现对时间如此敏感以至于需要中断吗?因为如果不是,轮询按钮的状态然后比较耗时将是一个非常简单的实现。但是,如果您想坚持使用中断,我会看看 volatile变量作为主循环和中断函数之间对话的一种方式。

关于c - 按钮中断和按钮按下时间超过 3 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com