ZigBee 看门狗不工作
专家好
先说方案:很多路由+协调器,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
}
}