at90can128 定时器/计数器3的三种工作模式:
void InitPWM(void) //Output Compare and PWM Output C for Timer/Counter3
{
TCCR3A = ( 0 << COM3A1 ) | ( 0 << COM3A0 ) | //OCR3A 未使用定时/计数模式 用为普通IO口
( 0 << COM3B1 ) | ( 0 << COM3B0 ) | //OCR3B 未使用定时/计数模式 用为普通IO口
( 1 << COM3C1 ) | ( 1 << COM3C0 ) | //OCR3C 定时/计数模式 用为PWM输出 即PE5-- OC3C --DDRE |= (1 << DDE5)
( 1 << WGM31 ) | ( 1 << WGM30 ) ;
TCCR3B = ( 1 << WGM33 ) | ( 1 << WGM32 ) | //WGM33 WGM32 WGM31 WGM30 -- 1 1 1 1 ->快速PWM模式
( 0 << CS32 ) | ( 0 << CS31 ) | ( 1 << CS30 ); //无分频
OCR3A = 0x7ff;
OCR3C = 0xff;
}
\\
定时器/计数器3 工作模式设定 通过WGMx3 WGMx2 WGMx1 与 WGMx0 来进行设定:
定时器/计数器3 三种工作模式下的 OCxn 设定 ,通过 COMxn1 与 COMxn0 来进行设定:
定时器/计数器3 工作时钟设定 通过 CSx2 CSx1 CSx0 来进行设定:
定时器/计数器3 输出比较寄存器 OCR3A OCR3C-- 当计数值达到 OCR3A 的值时,产生的比较被用作 输出比较中断 或者 在 OC3A 引脚上输出PWM波形 :