26

帖子

0

TA的资源

一粒金砂(初级)

21
 
很好
学习下
 
个人签名光、机、电一体化

回复

6

帖子

0

TA的资源

一粒金砂(中级)

22
 
楼主,你太伟大了
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

23
 
版主,为什么我按照你的做了出现了一个警告如下:
"example.c", line 6: warning #225-D: function declared implicitly
我没有重复定义啊,请指教,
谢谢!

点评

\"example.c,这个是你自己加的文件吧。 第六行有个声明需要在头文件中说明。这是C语言的语法问题。  详情 回复 发表于 2012-12-14 21:04
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

24
 

回复 23楼 snowingfish 的帖子

"example.c,这个是你自己加的文件吧。
第六行有个声明需要在头文件中说明。这是C语言的语法问题。
 
 
 

回复

373

帖子

0

TA的资源

纯净的硅(中级)

25
 

回复 沙发 dontium 的帖子

请问楼主IIC的教程出了吗
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

26
 
目前我的PWM还只是在RAM中运行,还没有下载到fash运行,可能还需要好一段时间研究,欢迎一起研究

点评

准备以后有空马上写这些文章。  详情 回复 发表于 2012-12-18 14:35
 
个人签名Profibus-DP解决方案供应商www.hurry-automation.cn
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

27
 

回复 26楼 HurryLee 的帖子

准备以后有空马上写这些文章。
 
 
 

回复

7

帖子

2

TA的资源

一粒金砂(初级)

28
 
看看!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

29
 
谢谢楼主给了个这么好的例子,有个问题想请教一下楼主。

我用的也是C2000,但是我用的软件是CCS5,目前也在研究这个PWM的问题。结合楼主你给的例子和ControlSUITE的例子,在"Set Action"和"Setup Compare"中我写的程序是

    // Setup compare
    PWM_setCmpA(myPwm1, 500);

    // Set actions
    PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Set);
    PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Clear);

但是总是得不到想要的PWM图像,如果不要第二行的程序(下面所示),我得到的是高位的值,说明程序还是对的,但就是不知道该怎样调节占空比。
    // Setup compare
    PWM_setCmpA(myPwm1, 500);

    // Set actions
    PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Set);

望楼主不利赐教!

点评

PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Set); PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Clear); 你先设置为SET,后设置为CLEAR,前一个就失去作用了。 调整占空  详情 回复 发表于 2013-1-11 11:47
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

30
 

回复 29楼 tiger.libin 的帖子

PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Set);
    PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1, PWM_ActionQual_Clear);

你先设置为SET,后设置为CLEAR,前一个就失去作用了。


调整占空比时,很简单,CPU的负担很轻,只用写CMPA的值就可以了:
EPwm1Regs.CMPA.half.CMPA                 = 500;
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

31
 
谢谢楼主的回复,也感谢给的提示。由于我是新手,不知道楼主能不能帮我用CCSv5的方式写出如何调节占空比。您的这个指令好像和我用的版本不一样,运行有错误啊!麻烦楼主!

点评

inline void PWM_setCmpA(PWM_Handle pwmHandle,const uint16_t pwmData) 不是CCS的版本问题,是TI例程库的版本  详情 回复 发表于 2013-1-11 21:04
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

32
 

回复 31楼 tiger.libin 的帖子

inline void PWM_setCmpA(PWM_Handle pwmHandle,const uint16_t pwmData)


不是CCS的版本问题,是TI例程库的版本
 
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

33
 
:carnation: 太好了,谢谢
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

34
 
楼主你好。我把你的代码拷到工程里面,运行没有效果啊。哎。不知道问题在哪里。能否把整个工程发出来。

点评

因为PWM相对简单一些,整个工程已经没有保存。 但这个工程是建立在以前的工程之上的(以前发的帖子里有整个工程),你可以参考一下。 好可以将你的工程传上来,让大伙帮你看看是什么问题  详情 回复 发表于 2013-1-25 22:34
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

35
 

回复 34楼 bozi 的帖子

因为PWM相对简单一些,整个工程已经没有保存。
但这个工程是建立在以前的工程之上的(以前发的帖子里有整个工程),你可以参考一下。

好可以将你的工程传上来,让大伙帮你看看是什么问题
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

36
 
EPwm1Regs.CMPA.half.CMPA =300;
楼主,我想问下,这个half是干嘛用的,数据手册上没找到。
然后我的pwm输出占空比最大之后50%,这个怎么处理
附:配置程序

        EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWM; // Count updowm
        EPwm1Regs.TBPRD = PWMPRD;       // Set timer period
        EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;    // Disable phase loading
        EPwm1Regs.TBPHS.half.TBPHS = 0x0000;       // Phase is 0
        EPwm1Regs.TBCTR = 0x0000;                  // Clear counter
        EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;   // TBCLK = SYSCLKOUT/4 = 15M
        EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV2;

        // Setup shadow register load on ZERO
        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;
        

        // Set Compare values
        EPwm1Regs.CMPA.half.CMPA = 300;    // Set compare A value
        EPwm1Regs.CMPB = 300;              // Set Compare B value

        // Set DB
        EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
        EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_LOC;
        EPwm1Regs.DBCTL.bit.IN_MODE = DBB_ALL;
        EPwm1Regs.DBRED = 0x2D;
        EPwm1Regs.DBFED = 0X2D;

        // Set actions
        EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;            // Set PWM1A on Zero
        EPwm1Regs.AQCTLA.bit.CAU = AQ_TOGGLE;          // Clear PWM1A on event A, up count

        EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;            // Set PWM1B on Zero
        EPwm1Regs.AQCTLB.bit.CBU = AQ_TOGGLE;          // Clear PWM1B on event B, up count

点评

用half是表示不包括HRPWM的那部分,你可以看看手册中,CMPA可以32位读写,也可以16位读写。 第二个问题不懂你的意思  详情 回复 发表于 2013-2-24 17:34
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

37
 

回复 36楼 xyx518809 的帖子

用half是表示不包括HRPWM的那部分,你可以看看手册中,CMPA可以32位读写,也可以16位读写。

第二个问题不懂你的意思

点评

这个pwmprd是376 当 EPwm1Regs.CMPA.half.CMPA = 300; // Set compare A value EPwm1Regs.CMPB = 300; // Set Compare B value 中的数值超过376的一半时,我输出的pwm占空比都  详情 回复 发表于 2013-2-24 21:28
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

38
 

回复 37楼 dontium 的帖子

这个pwmprd是376

        EPwm1Regs.CMPA.half.CMPA = 300;    // Set compare A value
        EPwm1Regs.CMPB = 300;              // Set Compare B value
中的数值超过376的一半时,我输出的pwm占空比都是50%

点评

EPwm1Regs.DBRED = 0x2D; EPwm1Regs.DBFED = 0X2D 这两个的原因  详情 回复 发表于 2013-2-24 22:50
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

39
 

回复 38楼 xyx518809 的帖子

EPwm1Regs.DBRED = 0x2D;
        EPwm1Regs.DBFED = 0X2D



这两个的原因

点评

EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR; // Set PWM1A on Zero EPwm1Regs.AQCTLA.bit.CAU = AQ_TOGGLE; // Clear PWM1A on event A, up count EPwm1Regs.AQCTLB.bit.ZRO =  详情 回复 发表于 2013-2-25 23:43
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

40
 

回复 39楼 dontium 的帖子

EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;            // Set PWM1A on Zero
        EPwm1Regs.AQCTLA.bit.CAU = AQ_TOGGLE;          // Clear PWM1A on event A, up count

        EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;            // Set PWM1B on Zero
        EPwm1Regs.AQCTLB.bit.CBU = AQ_TOGGLE;          // Clear PWM1B on event B, up count
问题找到了,不是死区的原因,是aq的原因,触发条件少写了一句
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表