微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530 timer1 备用位置 1 输出 PWM 问题。

CC2530 timer1 备用位置 1 输出 PWM 问题。

时间:10-02 整理:3721RD 点击:

使用 CC2530 的定时器 1 进行协议栈的 PWM 控制,输出 RGB 信号。端口分别为 P0_2、P0_3、P0_4。

定时器初始化时使用备用位置 1,则 P0_2、P0_3、P0_4 分别为通道 0,通道 1,通道 2。但在实际测试时发现只有 P0_4 可以调节 PWM 信号, P0_2、P0_3 未能产生 PWM 信号。

代码如下:

/*pwm初始化*/
void InitPWM(void)
{
	PERCFG &= ~0x40; //设置定时器1外设 I/O, 位置为备用位置1
	PERCFG |= 0x03;  //设置串口1和串口0的I/O位置为备用位置2

	P2DIR = (P2DIR & ~0xc0) | 0x80; //设置定时器1优先级,通道0/1优先
	P0DIR |= 0x7c; //P0定义 P0_2 ~ p0_6
	P0SEL |= 0x7c; //P0定义为外设功能*/

	T1CC0L = 0x78;
	T1CC0H = 0x10;
	T1CC1L = 0x78;
	T1CC1H = 0x10;
	T1CC2L = 0x78; // 占空比
	T1CC2H = 0x10;

	T1CCTL0 = 0x1c; //通道配置,010在比较(定时器计数值小于比较寄存器设定值时)翻转输出电平
	T1CCTL1 = 0x1c;
	T1CCTL2 = 0x1c;

	T1CTL |= 0x01; // free-running mode 周期 0000-ffff
}


/* PWM 调节 */
void Pwm_Value(uint16 Rchlight, uint16 Gchlight, uint16 Bchlight)
{

	/* P0_2 ~ P0_4 rgb 调光 */
	T1CC0L = LO_UINT16(Bchlight);
	T1CC0H = HI_UINT16(Bchlight);

	T1CC1L = LO_UINT16(Rchlight);
	T1CC1H = HI_UINT16(Rchlight);

	T1CC2L = LO_UINT16(Gchlight);
	T1CC2H = HI_UINT16(Gchlight);

}


实在看不出出错的地方,在这里也看到一个帖子,做法和我的都类似:PWM Timer 1 output for CC2530

请问你是在带有协议栈的基础上添加这个代码? 如果是的话检查P0.2 P03是否被定义其他的功能。

另外你可以下载Z-Stack Lighting 1.0.2,里面有实现好PWM的功能,可以参考下代码。

Hi,

您可以参照以下链接,或者参考该目录下的调光文件C:\Texas Instruments\Z-Stack Lighting 1.0.2\Projects\zstack\ZLL\SampleApp\Source\Light

https://e2e.ti.com/support/wireless_connectivity/proprietary_2-4_ghz/f/964/t/118346?tisearch=e2e-sitesearch&keymatch=CC2530%20RGB%20pwm

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top