这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 有关使用定时器产生PWM输出的配置问题、求高手!

共4条 1/1 1 跳转至

有关使用定时器产生PWM输出的配置问题、求高手!

菜鸟
2011-07-25 10:55:02     打赏

看了STM32应用上讲的使用定时器产生PWM输出,其中一个配置步骤:

根据需要的频率和占空比计算出输出高电平的时间和低电平的时间:
OCHy = 通道y的高电平时间;OCLy =通道y的低电平时间
把OCHy写入对应的输出比较寄存器,并启动计数器开始计数,比较匹配后输出信号被翻转并产生中断,每次中断中轮流把输出比较寄存器的数值增加OCHy或OCLy,即可产生希望的PWM输出

 

    不是很明白,怎么计算输出高电平的时间和低电平的时间呢?例如求产生PWM输出:
频率=10kHz 占空比=40:60,设置定时器输入时钟频率为72MHz,预分频器TIMx_PSC=4
计算得到:计数器的时间基准CK_CNT=4/72MHz,各通道的高低电平时间按计数器基准换算成OCH和OCL怎么就是OCH=720,OCL= 1080呢?怎么算的?
还有把OCHy写入对应的输出比较寄存器,这个比较寄存器是什么呢?急求详细的解答




关键词: 有关     使用     定时器     产生     输出     配置     问题     高手    

高工
2011-07-27 22:24:13     打赏
2楼
PWM时钟:72/4 = 18M
PWM计数周期: 18M/10K  = 1800个PWM时钟周期
取1800*40% = 720
    1800*60% = 1080

高工
2011-07-27 22:27:31     打赏
3楼
如果LZ实在不想看STM32的数据手册,就用ST提供的函数库好了,很容易入门的

如果想深入研究,直接操作寄存器,摆脱ST的函数库,就老老实实的对照ST的数据手册和Reference Manual多看几遍,

菜鸟
2011-08-17 01:40:37     打赏
4楼
周期就是按照时间来计算,寄存器地址手册里写的很清楚了,只不过还要配置一堆寄存器来启动计数等。另外看你的说明还需要写段中断处理程序,在中断处理过程中重新把计算过的数值存进去,要不然PWM是不输出的。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]