|
|

楼主 |
发表于 2015-7-14 09:30:58
|
显示全部楼层
自己折腾出来了,自己答下吧
因为是8M的RC,所以用8分频,CS11。WGM12和WGM10是采用Fast PWM。
这里写了4个通道的PWM。
185是随便的一个占空比。
void setupPWM9() // OC1A
{
pinMode(9, OUTPUT);
TCCR1A = 0;
TCCR1B = 0;
TCCR1B |= _BV(CS11) | _BV(WGM12);
TCCR1A |= _BV(COM1A1) | _BV(WGM10);
OCR1A = 185;
}
void setupPWM5() // OC0B
{
pinMode(5, OUTPUT);
TCCR0A = 0;
TCCR0B = 0;
TCCR0B |= _BV(CS01);
TCCR0A |= _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);
OCR0B = 185;
}
void setupPWM6() // OC0A
{
pinMode(6, OUTPUT);
TCCR0A = 0;
TCCR0B = 0;
TCCR0B |= _BV(CS01);
TCCR0A |= _BV(COM0A1) | _BV(WGM01) | _BV(WGM00);
OCR0A = 185;
}
void setupPWM3() // OC2B
{
pinMode(3, OUTPUT);
TCCR2A = 0;
TCCR2B = 0;
TCCR2B |= _BV(CS21);
TCCR2A |= _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);
OCR2B = 185;
}
|
|