Arduino中断了功能

时间:2018-05-01 12:22:53

标签: arduino

我想在方波脉冲的上升沿和下降沿调用一些函数。我使用attachInterrupt(digitalPinToInterrupt(interruptPin),udara,RISING)用于上升沿和attachInterrupt(digitalPinToInterrupt(interruptPin),空白,FALLING)用于下降沿。但我没有得到保守上升和下降的串行输出。这个问题的答案是什么?我的代码编写如下。

SendMessage(Handle, CB_SETDROPPEDWIDTH, 100, 200);

2 个答案:

答案 0 :(得分:1)

attachInterrupt()应该是setup()的一部分,而不是loop(),因为它用于设置事件触发器和回调。

const byte interruptPin = 2;

void setup() {
    Serial.begin(9600);
    pinMode(interruptPin, INPUT);
    attachInterrupt(digitalPinToInterrupt(interruptPin), udara, RISING);
    attachInterrupt(digitalPinToInterrupt(interruptPin), blank, FALLING);
}

void loop() {

}

void udara() {
    Serial.println("rise");
}

void blank() {
    Serial.println("fall");
}

答案 1 :(得分:0)

Serial使用中断来推出数据。在ISR期间禁用这些中断。因此,最好避免在ISR中使用Serial。更改代码以在ISR中设置标志,并从循环执行打印以响应标志。