如何计算imer2_Init_PWM(100,36);
时间: 2024-04-05 15:34:11 浏览: 16
imer2_Init_PWM(100,36)是一个函数调用,它的作用是初始化Timer2为PWM模式,设置PWM频率为100 Hz,占空比为36%。具体计算过程如下:
1. 计算PWM周期:PWM周期 = 1 / PWM频率 = 1 / 100 = 0.01 s = 10 ms。
2. 计算PWM占空比:PWM占空比 = 占空比 / 100 = 36 / 100 = 0.36。
3. 计算TMR2重载值:TMR2重载值 = (PWM周期 / TMR2时钟周期) - 1。
其中,TMR2时钟周期为4分频,即1个TMR2时钟周期为250 ns,所以TMR2重载值 = (10ms / 250ns) - 1 = 39999。
4. 设置PWM模式:CCP2CON = 0b00001100。
其中,CCP2CON的低4位为PWM模式,第5位为LSBEN位,第6位为MSBEN位,第7位为DC位,因此0b00001100表示PWM模式,DC位为CCPR2L和CCP2CON<5:4>共同确定占空比。
5. 设置TMR2时钟分频:T2CON = 0b00000100。
其中,T2CON的低3位为TMR2时钟分频,0b100表示4分频,即TMR2时钟频率为Fosc/4。同时,TMR2的开关控制位TMR2ON为1,使TMR2开始计数。
6. 设置占空比:CCPR2L = (TMR2重载值 + 1) * PWM占空比 = 14400。
其中,CCPR2L为PWM占空比的高8位,CCP2CON<5:4>为PWM占空比的低2位,因此CCPR2L = (TMR2重载值 + 1) * PWM占空比 = (39999 + 1) * 0.36 ≈ 14400。