launchpad c2000 hrpwm

2019-08-07 14:56发布



谁能帮忙解释一下这段程序了!做什么用的啊?

while (update ==1)
    {

        for(DutyFine =1; DutyFine <256 ;DutyFine ++)
        {

            // Example, write to the HRPWM extension of CMPA
            PWM_setCmpAHr(myPwm1, DutyFine << 8);
            PWM_setCmpAHr(myPwm2, DutyFine << 8);

            // Example, 16-bit write to CMPAHR
            PWM_setCmpAHr(myPwm3, DutyFine << 8);
            PWM_setCmpAHr(myPwm4, DutyFine << 8);

            for (i=0;i<10000;i++){                          // Dummy delay between MEP changes
            }

        }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
pmp
1楼-- · 2019-08-07 18:14
 精彩回答 2  元偷偷看……
threetigher
2楼-- · 2019-08-07 21:27
pmp 发表于 2013-4-24 00:11
目测设置pwm周期

???               
wgdxiaoqiang
3楼-- · 2019-08-08 01:21
应该就是这段程序:
       for(DutyFine =1; DutyFine <256 ;DutyFine ++)
        {
        // Example, write to the HRPWM extension of CMPA
        EPwm1Regs.CMPA.half.CMPAHR = DutyFine << 8;     // Left shift by 8 to write into MSB bits
        EPwm2Regs.CMPA.half.CMPAHR = DutyFine << 8;     // Left shift by 8 to write into MSB bits

        // Example, 32-bit write to CMPA:CMPAHR
        EPwm3Regs.CMPA.all = ((Uint32)EPwm3Regs.CMPA.half.CMPA << 16) + (DutyFine << 8);
        EPwm4Regs.CMPA.all = ((Uint32)EPwm4Regs.CMPA.half.CMPA << 16) + (DutyFine << 8);

        for (i=0;i<10000;i++){}                         // Dummy delay between MEP changes
        }
但是不确定具体的作用,更新CMPAHR?,mep的值在哪里设置?还是系统时钟对应确定的mep,如60MHZ下180ps?

一周热门 更多>