This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ZigBee 看门狗不工作

Other Parts Discussed in Thread: Z-STACK, CC2530

专家好

先说方案:很多路由+协调器,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

    }
    }