0

我有带有 MPLAB C18 的 PIC18F87J11。我试图通过强制它进入睡眠状态来限制设备对电池的消耗。我注意到进入睡眠模式后,timer0 停止计数,直到唤醒。此外,我知道唤醒设备的唯一方法是当它从另一个节点接收到消息时,因为我有一个 MRF89XA 收发器。

为了让我的设备进入睡眠状态,我只需调用它在编译器头文件中定义的这个函数。

Sleep(); 

Q1:除了从某个节点接收消息外,我如何唤醒设备?在 DataSheet 中,它说 EXIT BY INTERRUPT 或 EXIT BY RESET 但是如果没有计时器,你怎么做呢?

通过阅读数据表,它声明必须使用Timer1才能监控时间,真的是这样吗?

我真正想要的只是尽可能降低电池使用量并让计时器在睡眠模式下工作。

谢谢!

4

2 回答 2

1
于 2013-07-16T20:34:28.887 回答
0

我有这个确切的问题,但这是我的一个小疏忽。Timer1 可以有/有一个同步位,称为:

T1CONbits.nT1SYNC = 1;// Timer1 外部时钟输入同步控制位。

这使定时器 1 与主时钟同步。由于主时钟不在睡眠模式下运行,它无法同步,因此 Timer1 不工作。我需要做的就是确保我没有将 Timer1 同步到主时钟。将其配置为正确的睡眠模式,即不是深度睡眠或空闲或 vBAT,一切正常。

我在 PIC18F97j94 上使用 MPLABx 和 XC8

于 2014-02-20T10:03:36.307 回答