我想使用 16MHz Arduino Uno (ATMEGA328P) 设置自定义频率 (12Hz) 和占空比 (20%)。
AVR 计算器产生:
ICR1 = 20833
OCR1A = 4167
Run Code Online (Sandbox Code Playgroud)
我已经阅读了大量的论坛和 tuts 但由于某种原因我无法让它工作。
下面是我的代码:
void setup()
{
// PB1 is now an output (Pin9 Arduino UNO)
DDRB |= (1 << DDB1);
// PB2 is now an output (Pin10 Arduino UNO)
DDRB |= (1 << DDB2);
// Set PWM frequency/top value
ICR1 = 20833;
// Set PWM duty cycle
OCR1A = 4167;
// Set inverting mode (start low, go high)
TCCR1A |= (1 << …Run Code Online (Sandbox Code Playgroud)