TI中文支持网
TI专业的中文技术问题搜集分享网站

ZigBee协议栈定时器API接口函数无法使用?

TI的大神们,我使用协议栈的定时器接口函数准备操作定时器,搞不懂了,就是不进中断,回调函数也没用

编译TIMER=TRUE

在SampleApp_Init()里面定义的了定时器的配置函数

HalTimerConfig(HAL_TIMER_0,HAL_TIMER_MODE_CTC, HAL_TIMER_CHANNEL_A,

HAL_TIMER_CH_MODE_OUTPUT_COMPARE, TRUE, timer3CallBackFunction);

HalTimerInterruptEnable(HAL_TIMER_0, HAL_TIMER_CH_MODE_OUTPUT_COMPARE, TRUE);

当ZDO_STATE_CHANGE触发,成为中断时候执行HalTimerStart(HAL_TIMER_0, 5000);

回调函数:

static void timer3CallBackFunction(uint8 timerId, uint8 channel, uint8 channelMode)
{
SampleApp_Send_P2P_Message();
}

根本进不去回调函数,然后我再去看中断处理

HAL_ISR_FUNCTION( halTimer3Isr, T3_VECTOR )
{
halProcessTimer3();
}

设端点无法进入……也不执行。无解中…….

之后换了种办法,去掉编译TIMER=TRUE,自己用寄存机配置

void InitT3()

{

T3CTL |= 0x08 ; //开溢出中断

T3IE = 1; //开总中断和 T3 中断

T3CTL |= 0xE0; //128 分频,128/16000000*N=0.5S,N=62500

T3CTL &= ~0x03; //自动重装 00->0xff 62500/255=245(次)

T3CTL |= 0x10; //启动 EA = 1; //开总中断

}

HAL_ISR_FUNCTION( halTimer3Isr, T3_VECTOR )

{

   RCON = 0x00; //清中断标志, 也可由硬件自动完成

   if(count++ > 245) //245 次中断后 LED 取反,闪烁一轮(约为 0.5 秒时间)

    { //经过示波器测量确保精确

          count = 0; //计数清零

         LED1 = ~LED1; //改变 LED1 的状态

   }

}

这里灯始终不闪….无解ing……………………

VV:

你想直接使用硬件定时器的目的为什么了?你期望达到的定时时间多少?需要uS级吗?

yusheng Wu:

回复 VV:

您好VV:

       计划是这样的,用ADC采集1KHZ信号,每个400us采集一次,存到数组里面。到达一定数量以后打包发送到协调器。 

想试验下这个计划行不行。所以想要启动定时器,试了几种方法都失败了。

赞(0)
未经允许不得转载:TI中文支持网 » ZigBee协议栈定时器API接口函数无法使用?
分享到: 更多 (0)