avr at90can128芯片 定时器/计数器3

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波形 :

 


原文地址:https://www.cnblogs.com/javawebsoa/p/3049944.html