小编Jos*_*key的帖子

Arduino中断替代方案

从我读到的,我的问题的解决方案是使用中断,但如果我正确理解它,我不能在中断调用的例程中使用延迟.我有一个大按钮LED开关.我希望它在闲置时有一个心跳,但一旦它被按下,保持绿色并执行代码.

heartbeat()如果我按下按钮足够的次数,我可以打破(我假设在正确的时间完成状态更改,因为它完成了循环heartbeat),但我仍然坚持如何使它在第一次点击时工作.有没有其他方法来做我正在尝试的事情?

void loop(){

heartbeat();                                    //Make LED beat.
buttonVal = digitalRead(buttonPin);             //Check the button.
    if (buttonVal != buttonState) {               //If the button state changed.
        if (buttonVal == HIGH){                   //Check if the button is pressed.
            analogWrite(greenPin, 255);         //Button stays green once pushed.
            functionA                           //Has some delays in it.
            functionB                           //Has some other delays.
        }
    }
}

void heartbeat(){
    for(i = 0; i < pmw; i++) {
        analogWrite(greenPin,i);
        delay(((60000/rate)*.1)/pmw);
    }

    for (i = pmw; i > 0; …
Run Code Online (Sandbox Code Playgroud)

c embedded microcontroller arduino interrupt

0
推荐指数
1
解决办法
4741
查看次数

标签 统计

arduino ×1

c ×1

embedded ×1

interrupt ×1

microcontroller ×1