#include
#define F_CPU 16000000UL
void main()
{
int pwm=1;
int i,j;
char n=1;
TCCR0=0x61;//相位修正 pwm,匹配时清零,1:1 分频
TCCR1A=0xa1;//8 位相位修正 pwm(与 TCCR0 一致),匹配时清零,1:1 分频
TCCR1B=0x01;//8 位相位修正 pwm,匹配时清零,1:1 分频
TCCR2=0x61;//相位修正 pwm,匹配时清零,1:1 分频
DDRB=0x38;//置 OC0 为输出
DDRD=0xb0;//置 OC1A,OC1B,OC2 为输出,OC0,OC1A,OC1B,OC2 分别对应 PB3,PD5,PD4,PD7
while (1)
{
for(i=0;i<100;i++)
for(j=0;j<10;j++);
if(pwm==255||pwm==0)
n=-n;
pwm=pwm+n;
OCR0=OCR1A=OCR1B=OCR2=pwm;//将占空比置为 pwn/256*100%
}
}