CC2541 PWM 输出问题
我使用CC2541 TIM1 外设I/O输出PWM,为什么通道2输出的PWM最小值拉不到0呢,而通道1与通道3输出的PWM则十分正常。
PWM初始化代码如下:
void PWM_Init()
{
//设置pwm端口为输出
P0DIR|= BV(3)|BV(4)|BV(5);
//设置pwm端口为外设端口,非gpio
P0SEL|= BV(3)|BV(4)|BV(5);
PERCFG |= 0x03; // Move USART1&2 to alternate2 location so that T1 is visible
T1CTL = 0x0E; // Div = 128, CLR, MODE = Suspended
T1CCTL1 = 0x34; // 定时器1 通道1 捕获/比较控制
T1CCTL2 = 0x34;
T1CCTL3 = 0x34;
//定时器1 计数器低字节
T1CNTL = 0; // Reset timer to 0;
T1CCTL0 = 0x4C; // IM = 1, CMP = Clear output on compare; Mode = Compare
//定时器1 通道0 捕获/比较值 高H 低L 字节
T1CC0H = 0x01;
T1CC0L = 0x77;
T1CC1H = 0x01;
T1CC1L = 0x77;
T1CC2H = 0x01;
T1CC2L = 0x77;
T1CC3H = 0x01;
T1CC3L = 0x77;
EA=1;
//定时器1 中断使能
IEN1 |= 0x02; // Enable T1 cpu interrupt
}
main 函数代码如下:
void main(void)
{
PWM_Init();
while(1);
}
下图为P0.4 的输出波形如下:
请看一下这个链接,贴出了正常的PWM代码。CC2530/CC2540协议栈不同,但在寄存器配置上有共性,可以参考
没看到链接...啊
怎么没链接
你好,你这里没有链接,我最近刚学cc2541,不知道怎么配置pwm输出,可否贴出代码以供参考学习,谢谢
你好!我也遇到这个问题,其他通道正常。你的链接在哪呢