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);
} 难道没有人用过,自己顶起。 楼主,我估计,你可能是程序没有编译,就直接烧录程序了。我之前犯过这个错误 我是直接下载仿真的,它会自动编译的,我一直是这么使用的,这个问题应该不会存在。 小弟我也遇到了一样的问题!楼主求教! 我还没解决啊,用这个定时器的好像不是太多。 楼主,你这个问题解决了没有? 问题解决了,具体如下:
原因:主要是比较模式配置有问题!需要配置成重复模式。
//代码如下:
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]