请问0x00989680是什么意思?是怎样通过它计算占空比的?
CLK_enableEcap1Clock(myClk);
CAP_setModeApwm(myCap); // Enable APWM mode`
CAP_setApwmPeriod(myCap, 0x01312D00); // Set Period value
CAP_setApwmCompare(myCap, 0x00989680); // Set Compare value
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
请问0x00989680是什么意思?是怎样通过它计算占空比的?
CLK_enableEcap1Clock(myClk);
CAP_setModeApwm(myCap); // Enable APWM mode`
CAP_setApwmPeriod(myCap, 0x01312D00); // Set Period value
CAP_setApwmCompare(myCap, 0x00989680); // Set Compare value
你好,ruoyu
这段程序的后两句代码分别通过设置相应的寄存器对 PWM 的周期以及占空比进行设置:
(1)其中 0x01313D00 表示一个 PWM 周期的计时长度;
(2)0x00989680 表示 PWM 在一个周期中的翻转时刻,根据不同的 PWM 工作模式,可以对应为一个周期内高电平所占的长度或者一个周期内低电平所占的长度;
根据不同的PWM工作模式,占空比的计算方式:
0x00989680 ÷ 0x01313D00 * 100% (翻转方式为由高到低翻转)
或
1 - (0x00989680 ÷ 0x01313D00 * 100%) (翻转方式为由低到高翻转)
具体的细节建议您参考芯片的技术手册: http://www.ti.com.cn/cn/lit/ug/spruge9e/spruge9e.pdf