yutianyiren 发表于 2013-7-19 17:36:26

CC2530 timer4 无法改变占空比,有了解的请帮忙看看?

本帖最后由 yutianyiren 于 2013-7-19 17:38 编辑

最近想用cc2530的定时器4产生固定频率,通过改变T4CC1的值来改变占空比,但是无法实现,不知道哪位有了解的。
本人调试测试程序如下了,能输出PWM波形,占空比一直为0.4%左右,通过修改T4CC1的值,无法改变占空比:
#include <iocc2530.h>

void pwm_timer4_init(void)
{
      P2SEL&=~0X01;      //P2.0默认为普通端口
      PERCFG = 0x10;    //优先级设置
      P2SEL|= 0X01;    //使用第二功能 
      P2DIR|= 0X01;   //p2.0输出
      P2INP= 0x00 ; //&=~0X00;    //设置上拉,功能
      
      T4CNT   = 0X00; //initial value
      T4CTL|= 0x04; //clear timer3   
      T4CTL|= 0XE6;//module mode 128分频   
      T4CCTL0 = 0x1C; //通道0
      P2SEL= 0X11;
}

void pwm_timer4_send(unsigned char data)
{   
      T4CC0= 0xFA; //overflow value
      T4CC1 = data;   
      T4CTL |= 0x10; //start timer3
}

void main(void)
{
pwm_timer4_init();
pwm_timer4_send(20);
}

yutianyiren 发表于 2013-7-20 22:53:58

难道没有人用过,自己顶起。

yifeng152 发表于 2013-7-20 23:29:05

楼主,我估计,你可能是程序没有编译,就直接烧录程序了。我之前犯过这个错误

yutianyiren 发表于 2013-7-21 10:09:29

我是直接下载仿真的,它会自动编译的,我一直是这么使用的,这个问题应该不会存在。

w514640 发表于 2013-8-3 10:54:29

小弟我也遇到了一样的问题!楼主求教!

yutianyiren 发表于 2013-8-5 08:45:59

我还没解决啊,用这个定时器的好像不是太多。

jiamingz 发表于 2014-2-12 11:00:33

楼主,你这个问题解决了没有?

jiamingz 发表于 2014-2-12 16:40:24

问题解决了,具体如下:
原因:主要是比较模式配置有问题!需要配置成重复模式。

//代码如下:
PERCFG &= ~0x20;    //优先级设置
P1SEL|= 0X18;    //使用第二功能 
P1DIR|= 0X18;   //p1.3输出
//P1INP= 0x00 ; //&=~0X00;    //设置上拉,功能

T3CNT   = 0X06; //initial value
T3CTL|= 0x04; //clear timer3   
T3CTL|= 0XE0;//module mode 128分频
P2SEL|= 0X20;

T3CCTL0 = 0x2C;//0x1C; //通道0 (P1.3)
T3CC0 = 0x60; //compare value

T3CCTL1 = 0x2C;//0x1C; //通道1(P1.4)
T3CC1 = 0x80;

T3CTL |= 0x10; //start timer3
//如果要改变Duty,修改T3CC0的值就行了。
T3CC0 = 0x60; //compare value

页: [1]
查看完整版本: CC2530 timer4 无法改变占空比,有了解的请帮忙看看?