微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 在Zstack-CC2530的代码中加PWM输出的问题

在Zstack-CC2530的代码中加PWM输出的问题

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

对Timer initial的代码

void timer1Init(void)
{
unsigned int count;

T1CTL = 0x00;
T1CCTL0 = 0x00;
T1CCTL1 = 0x00;
T1CCTL2 = 0x00;
TIMIF =~0x40;

#ifndef CC2530_PG1
// Set conmpare mode with interrupt enabled
T1CCTL0 = 0x44;
#endif

// clear interrupt pending flag, disable interrupt
#ifdef CC2530_PG1
T1CTL &=~0x10; // T1CTL.OVFIF = 0
#else
T1STAT&=~0x01; // T1STAT.CH1IF = 0
#endif
T1IE = 0; // IEN1.T1IE = 0

T1CTL&=~0x0c;
/*
T1CTL|= 0x0c; // 分128频:Tick frequency/128
count = 25000; // 2500/(32MhZ/128) = 100ms
*/
T1CTL|= 0x08; // 32分频:Tick frequency/32
count = 10; // 20/(32MhZ/32) = 20uS //实际好像20us

T1CC0L = (unsigned char) count; // Setting counter value
T1CC0H = (unsigned char)(count>>8);

TIMIF |= 0x40;
T1IE = 1;
T1CTL |= 0x02;
}

start Timer 代码

void timer1Start(void)
{
T1CTL |= 0x03;
}

但是并没有执行Timer的中断 

#pragma vector=T1_VECTOR
__near_func __interrupt void t1_irq(void)

{

}

我看到HAL_TIMER 为FALSE 没有define.是不是这个原因?

没有影响,本身协议栈里面就没有用到Timer1

请先调试简单的定时器程序,不要在协议栈上调试。

你好,我在sensordemo中用timer1的4通道P0.6输出PWM,在PWM程序中设置断点,程序执行完PWM程序会有正确的波形输出,但是再往下全速执行时波形久不对了,时有时无,我查了P0.6是否存在竞争,没找到,不知道接下来怎么查了,麻烦你点拨下接下来怎么查这个bug,据说协议栈没有用到timer1,应该不存在改了我timer1的配置吧,求指点

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

网站地图

Top