MWX 发表于 2023-4-10 19:12:28

PCA输出PWM改了一点地方也可以?

范例中
    CCAPM0 = 0x42;                              //PCA模块0为PWM工作模式
    PCA_PWM0 = 0x80;                            //PCA模块0输出6位PWM
    CCAP0L = 0x20;                              //PWM占空比为50%[(40H-20H)/40H]
    CCAP0H = 0x20;
//--7位PWM--
    CCAPM1 = 0x42;                              //PCA模块1为PWM工作模式
    PCA_PWM1 = 0x40;                            //PCA模块1输出7位PWM
    CCAP1L = 0x20;                              //PWM占空比为75%[(80H-20H)/80H]
    CCAP1H = 0x20;

   

我变成这样


    CCAPM0 = 0x42;                              //PCA模块0为PWM工作模式
    PCA_PWM0 = 0x80;                            //PCA模块0输出
    CCAP0H = 0x20;

    CCAPM1 = 0x42;                              //PCA模块1为PWM工作模式
    PCA_PWM1 = 0x80;                           
    CCAP1H = 0x20;
   

输出是一样的 迷惑?









乘风飞扬 发表于 2023-4-10 19:52:38



PWM模式当计数器溢出时CCAPnH的值重载到CCAPnL中:




zhp 发表于 2023-4-11 09:55:00

你这样修改后,第一个波形的占空比是不正确的,
发生重载事件时,CCAPnH寄存器的值会重载到CCAPnL中,后面的波形就正常了
如果你不在意第一个波形,可以像你这样修改
否则请按照范例编写代码

MWX 发表于 2023-4-12 11:32:19

zhp 发表于 2023-4-11 09:55
你这样修改后,第一个波形的占空比是不正确的,
发生重载事件时,CCAPnH寄存器的值会重载到CCAPnL中,后面 ...

谢谢指导,第一个波形占空比不正确,我还没注意示波器上的显示,硬件PWM慢起动不影响后面工作

梁工 发表于 2023-4-12 13:32:10

上电后CCAPnL是0,则第一个PWM周期的占空比为0,下一个周期占空比才是CCAPnH的值。
初始化给定 CCAPnL的值,但是后面更新PWM占空比时,则不要操作 CCAPnL,只操作 CCAPnH。

MWX 发表于 2023-4-12 19:35:32

本帖最后由 MWX 于 2023-4-12 20:46 编辑

梁工:我想到了和泰电磁炉芯片,有半桥专用芯片。并有抖频技术。(内建IGBT高压驱动电路、硬件抖频电路)我想问一下STC芯片能否实现抖频?
页: [1]
查看完整版本: PCA输出PWM改了一点地方也可以?