微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZigBee 看门狗不工作

ZigBee 看门狗不工作

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

专家好

先说方案:很多路由+协调器,INTER_PAN ,CC2530 ,Z-STACK—2.5.1a

新项目需要,在Z-stack内加入了IIC存储EEPROM的功能。IIC驱动移植于官方下载的remote TI.

先期准备了30台样机客户。昨天出现一台无法通信的情况。

具体表现:

协调器失去与该节点的通信,节点我设置了呼吸灯如下:

HalLedSet(HAL_LED_1 , HAL_LED_MODE_BLINK);
osal_start_timerEx( APSM_TaskID,LED_DEBUG,5000);

出现问题时,灯常亮 。给机子复位后恢复正常。

另,我在预编译里是添加了看门狗使能的:WDT_IN_PM1

并在如下位置喂狗:

void osal_run_system( void )
{
uint8 idx = 0;

osalTimeUpdate();
Hal_ProcessPoll();
WD_KICK();

从现象来看,应该是程序跑飞了?但为什么我的狗没有给我reset?

还是说系统进入了另外一个状态,我闪灯任务等级太低,一直没执行?

领导要踢我屁股了,盼回复!

同样遇到过此问题。盼回复

首先建议您先关掉看门狗试试。

而后关于看门狗,请您参考下下面的代码

#define WD_KICK()           st( WDCTL = (0xA0 | WDCTL & 0x0F); WDCTL = (0x50 | WDCTL & 0x0F); )

把watchdog timer溢出的时间设置为最大1s,然后把它加在下面

void osal_start_system( void )
{
#if !defined ( ZBIT ) && !defined ( UBIT )
for(;;) // Forever Loop
#endif
{
osal_run_system();

WDCTL = 0xA0; 

WDCTL = 0x50; //feed watchdog

}
}

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

网站地图

Top