我把使用的几个定时器都给关掉了,然后使用了SLEEPCMD |= 0X03; PCON = 1;模块应该是进入了PM3休眠,因为我发现自定义的变量不再变化。但是当测量功耗的时候发现电流尽然有160uA,请问这是怎么回事呢,不是说进入PM3休眠后只会有0.3~0.4uA的吗?
我观察了osal_self(),发现当进入休眠是,其值为11,这个11是应该是pTaskEventHandlerFn tasksArr[]中的任务吧,难道使用PM3还要将底层的所有事件也给关掉吗?
求大神指教
Yan:
Amos,
11 说明有两个事件没有处理,你这个是0x11还是11呢?对应的task不一样。
Amos Chen:
回复 Yan:
Thanks Yan。我定义了一个Int 型变量check,在进入PM3模式之前将osal_self()赋给check。您说的还有两个事件没有处理,请问怎么查看是哪两个事件呢?因为我只使用了自带的周期事件来检测引脚电平高低,从而判断是否进入PM3休眠,其他的事件也没有使用啊。求指导,呵呵,谢谢了!
Amos Chen:
回复 Amos Chen:
抱歉,Yan,刚才有试了一次,这次使用的是uint8 check,check = osal_self();发现结果为0x0B。这个又是怎么回事呢?帮忙看下,谢谢了,嘿嘿