2809|1

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TI的ZigBee协议栈的定时器接口函数无法使用?定时器在协议栈无法使用? [复制链接]

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

此帖出自RF/无线论坛

最新回复

学习学习                                 详情 回复 发表于 2016-1-13 21:09
点赞 关注
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
学习学习                              
此帖出自RF/无线论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表