tanguicaicai 发表于 2014-9-15 11:37:11

zstack-休眠无法的唤醒

在 zstack 修改如下
在hal_key.c 中修改
/* SW_6 is at P0.1 */
#define HAL_KEY_SW_6_PORT   P0
#define HAL_KEY_SW_6_BIT    BV(4)//1—原为1
#define HAL_KEY_SW_6_SEL    P0SEL
#define HAL_KEY_SW_6_DIR    P0DIR

/* edge interrupt */
#define HAL_KEY_SW_6_EDGEBITBV(0)
#define HAL_KEY_SW_6_EDGE   HAL_KEY_FALLING_EDGE


/* SW_6 interrupts */
#define HAL_KEY_SW_6_IEN      IEN1/* CPU interrupt mask register */
#define HAL_KEY_SW_6_IENBIT   BV(5) /* Mask bit for all of Port_0 */
#define HAL_KEY_SW_6_ICTL   P0IEN /* Port Interrupt Control register */
#define HAL_KEY_SW_6_ICTLBITBV(4)//1 /* P0IEN - P0.1 enable/disable bit */ 修改
#define HAL_KEY_SW_6_PXIFG    P0IFG /* Interrupt flag at source */


hal_board_cfg.h
/* S1 */
#define PUSH1_BV          BV(6)//BV(1)修改
#define PUSH1_SBIT      P0_6//P0_1修改

OnBoard.C
/* Initialize Key stuff */
    OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE;//HAL_KEY_INTERRUPT_DISABLE;中断使能修改
HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);



然后通过P04中断唤醒!

实验过程和问题
1.        在不编译POWER_SAVING时,通信正常
2.        当使能POWER_SAVING时 不编译NV_RESTORE
3.        网络里只有C与E
   实验过程:
1.        C上电
2.        E上电
3.        然后发200MS发数据给串口,通过这RF发送线C


当把P04拉低时,电流上到26MA很快 又下到1.2ua这样
当刚入网时,在5分钟内拉低时然后用串口发数据,数据
全部错误,Packet Sniffer可以看到!当过了5以后,什么
也唤不醒了,电流一下起来,很低又下去!都搞了好几天
~~~各位大神帮帮看看!

tanguicaicai 发表于 2014-9-15 12:59:25

木有人回复!

majialou 发表于 2014-9-15 13:08:39

你的200ms是怎么产生的?定时器?
把定时发送的代码发上来,要不然让神也看不出来问题

tanguicaicai 发表于 2014-9-15 13:16:36

majialou 发表于 2014-9-15 13:08
你的200ms是怎么产生的?定时器?
把定时发送的代码发上来,要不然让神也看不出来问题 ...

是这样的!我用外部唤醒前用串口助手定时200ms向 CC2530发的

majialou 发表于 2014-9-15 15:16:28

用串口去唤醒单片机?你说的外部唤醒是按键吗
页: [1]
查看完整版本: zstack-休眠无法的唤醒