zmk78 发表于 2021-8-8 20:45:13

请问STC8K64U的PWM输出,CCR值是什么时候被作用的?

       现在PWM的时钟计数频率为100us一次,PWM的ARR周期为50即5ms,CCR占空比的值是T0定时器每1ms进行一次加1计算,从0到50,实验分别为预装载CCR值和不预装载CCR值输出波形。
情况一配置不预装载CCR,分析仪从对应管脚测得的波形占空比为100us-600us-1100us-1600us一直到最大,每个PWM周期占空比加了500us。
情况二配置预装载CCR值,分析仪测得的波形占空比为100us-200us-300us-400us-500us-600us一直到最大。
      现在疑问是:(1)在没有配置预装载CCR的情况下,CCR的值在一个PWM周期内可以被改变几次?并且改变的参数能有效输出?还是说需要等到本次PWM周期结束,以最近一次计算的CCR值作为新的占空比输出,前面几次计算的CCR值全部作废?
                        (2)选择预装载后的关于预装载寄存器问题,因为现在我在PWM的一个周期内计算了5次的CCR值,是不是在本周期没有作用完,计算出的5次CCR值全部存入了预装载寄存器,就和排队一样,等到周期结束先放进去的CCR值先传送到影子寄存器,如果是这样,这个预装载寄存器最大能够被放入几次的CCR计算值?如果不是这样为什么选择了预装载后,一个周期内的5次计算值全部能够被逐一作用输出波形而不丢失每次CCR的计算值?要是这样的话肯定有个最大保存CCR的次数值,例如我现在输出了4个周期的PWM波形,而这个占空比CCR的值是每1ms计算的,当4个周期作用完,其实已经算出了20个占空比的值,很不解?

zmk78 发表于 2021-8-8 20:47:58

型号打错了,是8H8K64U,望资深师傅们给予解答!

小李非刀 发表于 2021-8-9 10:28:38

看不明白楼主描述。所有的MCU的PWM都道理差不多,周期,占空比,对齐方式。

zmk78 发表于 2021-8-9 12:30:21

小李非刀 发表于 2021-8-9 10:28
看不明白楼主描述。所有的MCU的PWM都道理差不多,周期,占空比,对齐方式。 ...

你好,版主,我的意思是在我选择了预加载CCR值后,每次进入定时器中计算的所有CCR值都能被作用到输出波形上?但是我定时器计算CCR值的速度是1MS一次,而PWM的作用周期是5MS,按理说等到更新时间来的时候才会把最近一次的CCR值给影子寄存器,前面计算的CCR早就覆盖了,但我发现波形输出是完全按照1MS定时器中计算的CCR占空比输出的,也就是说第一个周期低100高9900,第二个周期低200高9800,第三个周期低300高9700,第四个周期低400高9600,第五个周期低500高9500。为什么这些CCR的计算结果全部会被作用上去了?

zmk78 发表于 2021-8-10 10:36:35

      错误原因是程序写错了

chengtina 发表于 2021-9-8 09:56:08

STC8H3K64S,PWM进不了中断,用PWM3和PWM4两组互补输出,中心对齐模式,对应端口输出波形能按照设计的来,想进PWM中断去控制PWM输出数量,看技术文档设置中断使能寄存器PWMA_IER中CC4IE和CC3IE两控制位,外加总中断控制EA,就应该能进入PWMA(中断入口序号26),但是结果就是怎么都进不去
页: [1]
查看完整版本: 请问STC8K64U的PWM输出,CCR值是什么时候被作用的?