调试了我正在使用类似Arduino的板和ATmega328制作的硬件原型后,我注意到RF库VirtualWire禁用了引脚D10中的PWM信号。 为什么?
如果我注释掉下面的代码,引脚D10上的analogWrite(PWM)会再次工作:
setup() {
...
vw_set_rx_pin(2);
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
analogWrite(10, 180);
...
}
答案 0 :(得分:1)
VirtualWire通过OCR1A在定时器1上使用CTC,它们都完全禁用OC1A(在D9上)和OC1B(在D10上)的PWM操作,并防止OC1A自由运行。 OC1B仍可使用,但仅限于CTC规定的模式,其速率由VirtualWire编程到定时器中。