微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > TI的ZigBee协议栈的定时器接口函数无法使用?定时器在协议栈无法使用?

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

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

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........................

学习学习

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

网站地图

Top