第三十五集上:任意频率和占空比的PWM输出
继续学习PWM:
摘要 1,任意频率和占空比的PWM输出 2.互补/同相PWM输出 3.带死区的互补PWM输出 4,单通道的PWM电机正反转调速
边沿对齐PWM频率=SYSclk/((PSCR+1)*(ARR+1)) 思考:假设主时钟为22.1184Mhz,需要输出的PWM频率为50HZ,ARR和PSCR取值?需要输出的PWM频率为10KHZ,ARR和PSCR取值又为多少? ·PSCR和ARR的数值最大为65535。 主时钟为22.1184Mhz,需要输出的PWM频率为50HZ,ARR和PSCR取值? 1.(PSCR+1)*(ARR+1)= SYSCLK/频率= 22118400/50=442,368 2.(ARR+1)=442,368/(PSCR+1)=442,368/2/2/2=55296 这里PSCR可以这样想:PSCR和ARR都是16位寄存器,最大值是:65535 要保证2者都在这个范围,那么(ARR+1)=442368/2/2/2=55296即可。 先除以2,比65534大,再除以2 ,比65534大,再除以2,比65534小,OK 就除以8! 所以 PSCR= 7;ARR =55295; 假设主时钟为22.1184Mhz,需要输出的PWM频率为10KHZ,ARR和PSCR取值? 1.(PSCR+1)*(ARR+1)= SYSCLK/频率=22118400/10000=2211.842. (ARR+1)=2211.84/(PSCR+1)≈ 2212 这个就不用除以2啦。 PSCR = 0;ARR =2211;
|