1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-7 10:12 编辑
我用28035实现如下功能: PWM1的计数器为零时触发一路AD采样,为周期时触发另外一路AD采样,同时PWM1和PWM2的计数器是同步的。具体设置见下面。 问题是:PWM1的计数器为零时触发AD采样和PWM1和PWM2的计数器同步两个同时存在时,则pwm输出完全乱掉了,不只是pwm1和pwm2,连pwm3和pwm6都乱掉了,如果注释掉红字的一行或者绿色的三行都能正常运行。就是说pwm1过零时同时触发ad和pwm同步信号就有问题,而单独执行一个就ok,我在手册里没有看到说这两个不能同时设置。 请问上述问题是我设置不对还是别的问题?有没有好的解决办法? EPwm3Regs.TBPRD = 3124; EPwm3Regs.TBPHS.half.TBPHS = 0x0000; EPwm3Regs.TBCTR = 0x0000; EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm3Regs.CMPA.half.CMPA = 1500; EPwm3Regs.AQCTLB.all = 0x0018; EPwm6Regs.TBPRD = 3124; EPwm6Regs.TBPHS.half.TBPHS = 0x0000; EPwm6Regs.TBCTR = 0x0000; EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm6Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm6Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm6Regs.CMPA.half.CMPA = 0; EPwm6Regs.AQCTLB.all = 0x0018; EPwm1Regs.TBPRD = 1500; EPwm1Regs.TBPHS.half.TBPHS = 0x0000; EPwm1Regs.TBCTR = 0x0000; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; EPwm1Regs.CMPA.half.CMPA = 0; EPwm1Regs.CMPB = 0; EPwm1Regs.AQCTLA.all = 0x0090; EPwm1Regs.AQCTLB.all = 0x0900; EPwm1Regs.ETSEL.bit.SOCAEN = 1; EPwm1Regs.ETSEL.bit.SOCASEL = 1; EPwm1Regs.ETSEL.bit.SOCBEN = 1; EPwm1Regs.ETSEL.bit.SOCBSEL = 2; EPwm1Regs.ETPS.bit.SOCAPRD = 1; EPwm1Regs.ETPS.bit.SOCBPRD = 1; EPwm2Regs.TBPRD = 1500; EPwm2Regs.TBPHS.half.TBPHS = 0x0000; EPwm2Regs.TBCTR = 0x0000; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; // EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; EPwm2Regs.CMPA.half.CMPA = 0; EPwm2Regs.CMPB = 0; EPwm2Regs.AQCTLA.all = 0x0090; EPwm2Regs.AQCTLB.all = 0x0900; |
|
相关推荐
1个回答
|
|
应该是可以设置的,但也没看出来你的代码有什么问题,不知道你说的PWM输出乱了是个具体的什么情况?
另外,是否有在以上的ePWM初始化之前先关闭同步时钟信号(EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS;),初始化完之后再打开(EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS;)? 如果可以,建议将程序简化以排除其它因素的影响(猜测是某些顺序导致?),或者将整个工程共享出来测试一下。 If a post answers your question, please mark it with the "verify answer" button. |
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
60浏览 29评论
154浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
202浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
59浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:06 , Processed in 0.886283 second(s), Total 78, Slave 62 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号