我正在使用 Arduino TimerOne 库的最新版本。
如果我不使用 TimerOne.attachinterrupt(xxx) 函数,引脚 10 会根据提供的参数生成适当的 PWM 信号。
当我调用 TimerOne.Attachinterrupt(isr,frequency) 或只是 ...(isr) 调用永远不会“返回” - 即引脚 10 上的信号没有启动,循环不会进入。我在调用附加之前打开一个 LED,然后在下一行将其关闭 - 但 LED 永远不会熄灭。
ISR 仅递减一个全局 volatile 变量
看来 AttachISR 正在破坏某些东西......代码设置如下:
pinMode(LED,OUTPUT);
digitalWrite(LED,HIGH);
MyTime.attachInterrupt(ISRFUNC,pwmFreq);
digitalWrite(LED,LOW);
MyTime.initialize(pwmFreq);
MyTime.pwm(pwmPin,pwmDC,pwmFreq);
MyTime.start();