/*-----------------------------------------------------------------
函数名称: void TC0_PWM_revise(void)
函数功能: TC0工作在相位修正PWM模式
参 数:
返 回 值: 无
说 明:
1、OCR0寄存器处于极值代表了相位修正PWM模式的一些特殊情况。在普通PWM模式下,
若OCR0等于BOTTOM,输出一直保持为低电平;若OCR0等于MAX ,则输出保持为
高电平。反向 PWM 模式则正好相反。
2、此模式下,OCR0!=0x00/0xff时OC0输出频率:Foc0=Fclk/N*510,N为预分频因子
3、OCR0!=0x00/0xff时,改变OCR0可调节占空比
-----------------------------------------------------------------*/
void TC0_PWM_revise(void) //模式四:TC0为PWM修正模式
{
//TCCR0=0X62; //配置a.0b01100010,8分频,在升序计数时发生比较匹配将清零OC0;
//降序计数时发生比较匹配将置位OC0
TCCR0=0X72; //配置b.0b01110010,8分频,在升序计数时发生比较匹配将置位OC0;
//降序计数时发生比较匹配将清零OC0
// OCR0=0X00; //TOP值设为0, OC0:a.0Hz,一直低电平 b.0Hz,一直高电平
OCR0=0X55; //TOP值设为85, OC0:a.245.9Hz,33.3%占空比 b.245.8Hz,66.7%占空比
//OCR0=0X7F; //TOP值设为127,OC0:a.245.9Hz,50%占空比 b.245.9Hz,50%占空比
//OCR0=0XFF; //TOP值设为255,OC0:a.0Hz,一直高电平 b.0Hz,一直低电平
TIMSK|=_BV(TOIE0); //T/C中断屏蔽寄存器 即溢出中断使能位 TOIE0—TOIE2 :T/C0—T/C2的溢出中断使能位
//若同时使用 则 TIMSK|=_BV(TOIE0)|_BV(TOIE1);
sei();// 全局中断打开 cli();关闭
}
|