7322|4

63

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

想问一下大家用的C2000的EPWM产生PWM的情况 [复制链接]

我用的EPWM1,产生的两路PWMA和PWMB不是互补的,这是什么情况呢?

[ 本帖最后由 woshilee 于 2013-7-18 11:43 编辑 ]

最新回复

你用向上向下模式试一下  详情 回复 发表于 2013-12-9 10:45
 
点赞 关注

回复
举报

1万

帖子

25

TA的资源

裸片初长成(高级)

沙发
 
C2000的PWM,和其它单片机相比,我认为是性能最好的。你可以看一看TI的关于它的文档,看完后很容易掌握。

你应该把相当寄存器的设置情况,以及怎么”出错“的,交待一下。
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
应该是配置出错了吧
看看这个
   EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
   EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
   EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
   EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;


[ 本帖最后由 mayiqing888 于 2013-7-20 16:29 编辑 ]

点评

配置函数如下,帮忙看一下吧 void InitEPwm1Timer() { EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // 停止TB计数 EDIS; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm1Regs  详情 回复 发表于 2013-7-25 18:10
 
 
 

回复

63

帖子

1

TA的资源

一粒金砂(中级)

4
 

回复 板凳mayiqing888 的帖子

配置函数如下,帮忙看一下吧
void InitEPwm1Timer()
{
   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;        // 停止TB计数
   EDIS;
   EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
   EPwm1Regs.TBCTR = 0x0000;                     // 清除TB计数器
   EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4;      // 系统时钟分频系数为0
   EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;
   EPwm1Regs.TBCTL.bit.PHSEN = 0;
   EPwm1Regs.TBPHS.half.TBPHS = 0;

   EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
   EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
   EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
   EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

   EPwm1Regs.CMPA.half.CMPA = 200;
   EPwm1Regs.CMPB = 200;
   //**********************输出A比较方式寄存器*******************//
   EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;            //计数器清零
   EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;          //达到CMPA的值变为低电平。

   //**********************输出B比较方式寄存器*******************//
   EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;            //计数器清零
   EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;          //达到CMPB的值变为低电平。


   EPwm1Regs.TBPRD = 30000;                                                 //设定周期
   EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    // 向上计数模式
   EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;     // 中断使能选择
   EPwm1Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;  // 使能中断
   EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;           //

   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;        // TB时钟设定
   EDIS;

}
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

5
 
你用向上向下模式试一下
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表