这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【STC32G12K128】捕获/比较模式寄存器PWMxCCMRn

共2条 1/1 1 跳转至

【STC32G12K128】捕获/比较模式寄存器PWMxCCMRn

专家
2024-12-17 13:08:14     打赏

捕获/比较模式寄存器,共有四组。

通道可用于输入(捕获模式)或输出(比较模式),通道的方向由相应的 CCnS 位定义。该寄存器其它位的作用在输入和输出模式下不同。OCxx 描述了通道在输出模式下的功能,ICxx 描述了通道在输入模式下的功能。因此必须注意,同一个位在输出模式和输入模式下的功能是不同的。

一、在通道配置为比较输出模式时:




OCnCE:输出比较 n 清零使能。该位用于使能使用 PWMETI 引脚上的外部事件来清通道 n 的输出信号(OCnREF)(n=1,5)

    0:OCnREF 不受 ETRF 输入的影响;

    1:一旦检测到 ETRF 输入高电平,OCnREF=0。

OCnM[2:0]:输出比较 n 模式。该 3 位定义了输出参考信号 OCnREF 的动作,而 OCnREF 决定了 OCn的值。OCnREF 是高电平有效,而 OCn 的有效电平取决于 CCnP 位。(n=1,5)

5.png

注 1:一旦 LOCK 级别设为 3(PWMn_BKR 寄存器中的 LOCK 位)并且 CCnS=00(该通道配置成输出)则该位不能被修改。

注 2:在 PWM 模式 1 或 PWM 模式 2 中,只有当比较结果改变了或在输出比较模式中从冻结模式切换到 PWM 模式时,OCnREF 电平才改变。

注 3:在有互补输出的通道上,这些位是预装载的。如果 PWMn_CR2 寄存器的 CCPC=1,OCM 位只有在 COM 事件发生时,才从预装载位取新值。

OCnPE:输出比较 n 预装载使能(n=1,5)

    0:禁止 PWMn_CCR1 寄存器的预装载功能,可随时写入 PWMn_CCR1 寄存器,并且新写入的数值立即起作用。

    1:开启 PWMn_CCR1 寄存器的预装载功能,读写操作仅对预装载寄存器操作,PWMn_CCR1 的预

    装载值在更新事件到来时被加载至当前寄存器中。

    注 1:一旦 LOCK 级别设为 3(PWMn_BKR 寄存器中的 LOCK 位)并且 CCnS=00(该通道配置成输出)则该位不能被修改。

    注 2:为了操作正确,在 PWM 模式下必须使能预装载功能。但在单脉冲模式下(PWMn_CR1 寄存器的 OPM=1),它不是必须的。

OCnFE:输出比较 n 快速使能。该位用于加快 CC 输出对触发输入事件的响应。(n=1,5)

    0:根据计数器与 CCRn 的值,CCn 正常操作,即使触发器是打开的。当触发器的输入有一个有效沿时,激活 CCn 输出的最小延时为 5 个时钟周期。

    1:输入到触发器的有效沿的作用就象发生了一次比较匹配。因此,OC 被设置为比较电平而与比较结果无关。采样触发器的有效沿和 CC1 输出间的延时被缩短为 3 个时钟周期。OCFE 只在通道

被配置成 PWMA 或 PWMB 模式时起作用。

CC1S[1:0]:捕获/比较 1 选择。这两位定义通道的方向(输入/输出),及输入脚的选择

6.png

CC5S[1:0]:捕获/比较 5 选择。这两位定义通道的方向(输入/输出),及输入脚的选择

7.png

注:CC1S 仅在通道关闭时(PWMA_CCER1 寄存器的 CC1E=0)才是可写的。

注:CC5S 仅在通道关闭时(PWM5_CCER1 寄存器的 CC5E=0)才是可写的。

二、在通道配置为比较输入模式时:

8.png

ICnF[3:0]:输入捕获 n 滤波器选择,该位域定义了 TIn 的采样频率及数字滤波器长度。(n=1,5)

9.png

注:即使对于带互补输出的通道,该位域也是非预装载的,并且不会考虑 CCPC(PWMn_CR2 寄存器)的值

ICnPSC[1:0]:输入/捕获 n 预分频器。这两位定义了 CCn 输入(IC1)的预分频系数。(n=1,5)

00:无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获

01:每 2 个事件触发一次捕获

10:每 4 个事件触发一次捕获

11:每 8 个事件触发一次捕获

CC1S[1:0]:捕获/比较 1 选择。这两位定义通道的方向(输入/输出),及输入脚的选择

10.png

CC5S[1:0]:捕获/比较 5 选择。这两位定义通道的方向(输入/输出),及输入脚的选择

11.png

注:CC1S 仅在通道关闭时(PWMA_CCER1 寄存器的 CC1E=0)才是可写的。

注:CC5S 仅在通道关闭时(PWM5_CCER1 寄存器的 CC5E=0)才是可写的。

其它介个寄存器的说明,参照CCMR1的说明。

在例程中:

    PWMB_CCMR1 = 0x60; //通道模式配置  

    PWMB_CCMR2 = 0x60;  

    PWMB_CCMR3 = 0x60;  

    PWMB_CCMR4 = 0x60; 

即OC5CE = 0   : OCnREF 不受 ETRF 输入的影响

   OC5M=110  : PWM模式1。

                            当PWMn_CNT<PWMn_CCR1时,OCnREF输出高,

                           否则OCnREF输出低

   OC5PE=0    : 禁止 PWMn_CCR1 寄存器的预装载功能,

                          可随时写入 PWMn_CCR1 寄存器,并且新写入的数值立即起作用。

   OC5FE=0    : 根据计数器与 CCRn 的值,CCn 正常操作,即使触发器是打开的。

                           当触发器的输入有一个有效沿时,激活 CCn 输出的最小延时为 5 个时钟周期。

   CC5S=00    : 输出方向

OCnREF 不受 ETRF 输入的影响





关键词: 菜鸟学单片机    

专家
2024-12-17 13:31:46     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

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