单片机学习小组
直播中

人走了

9年用户 894经验值
擅长:制造/封装 光电显示
私信 关注

定时器PWM模式的配置过程是怎样的呢

什么是脉冲宽度调制模式?
定时器PWM模式的配置过程是怎样的呢?

回帖(1)

李玉华

2022-1-18 11:25:47
定时器PWM模式

介绍:

  脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。
  在PWM模式下,TIMx_CNT和TIMx_CCRx时钟在进行比较,(依据计数器的计数方向)以确定是否符合TIMx_CNT≥TIMx_CCRx或者TIMx_CNT≤TIMx_CCRx。
  OCxREF信号只能在下述条件下产生:
  当比较的结果改变或者当输出比较模式从“冻结”切换到某个PWM模式。
[tr]PWM模式1PWM模式2[/tr]
向上计数CNTCNT
向下计数CNT>CCR1低 否则高CNT>CCR1 高 否则低
配置过程:

  ①:TIMx_CCMRx的OCxM位写“110”(PWM模式1)或者“111”(PWM模式2)。
  ②:TIMx_CCMRx的OCxPE位写“1”,使能TIMx_CCRx的预装载功能(CCRx)。
  ③:TIMx_CR1的ARPE位写"1",使能自动重装载的预装载功能(ARR)。
  ④:TIMx_EGR的UG位写“1”,重新初始化计数器。
  ⑤:TIMx_CCER的CCxP位控制OCx的极性(高电平有效、低电平有效)。
  ⑥:TIMx_CCER的CCxE位控制OCx的输出使能。
实验思路:

  关于中央对齐模式的测试:

  由图可知,当ARR=8,CCRx=4时,在CNT向上计数并且小于CCRx时,OCxREF输出高电平,在CNT向下计数且大于CCRx时,OCXREF输出低电平。所以这个波形的占空比为50%,设置计数周期为100us,则整个波形周期为1600us,通过改变CMS(中央对齐模式)可以在不同的状态下触发比较中断,对此我们进行实验验证。
  注意:在计数器开启时(CEN=1),不允许从边沿对齐模式转换到中央对齐模式。不推荐当运行在中央对齐模式时改写计数器,因为这会产生不可预知的结果 。如果写入计数器的值大于自动重加载的值(TIMx_CNT>TIMx_ARR),则方向不会被更新。
[tr]CMS=01CMS=02CMS=03[/tr]
只在计数器向下计数时被设置只在计数器向上计数时被设置在计数器向上和向下计数时均被设置
  首先正常配置定时器为PWM模式1,ARR=8,PSC=7200-1,CCR1=4。一个计数周期为100us,在进入比较中断的时候把flag置1,在主函数中一直检测flag状态,置1时等待一个计数周期,这样我们就能查看到下一个CNT值。例如CMS=01时,在进入中断后CNT=4,如果延时一个计数周期,那么CNT=3,此时就可以发现CNT是在向下计数并且当不满足CNT>CCR1时触发了中断。类似的,我们改CMS=02,在进入中断后CNT=4,如果延时一个计数周期,那么CNT=5,此时就可以发现CNT是在向上计数并且当不满足CNT
举报

更多回帖

×
20
完善资料,
赚取积分