我的客户希望在 CC1310待机模式下使用电池监控器来检测低电池电量情况、当电压降低50mV 时、电池监控器应唤醒 CC1310以切换 GPIO。
是否有这样的示例? 我从 TRM 中了解到、电池监控器将在电压更新时生成 AON 事件 BATMON_VOLT、但我不确定如何利用该事件唤醒 CPU。
此致、
水阳
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.
您好、Shuyang、
要根据 BATMON_VOLT 事件从待机模式唤醒、可以 使用以下代码将 BATMON_VOLT 设置为 MCU 唤醒可编程事件之一的源:
AONEventMcuWakeUpSet(AON_EVENT_MCU_WU2, AON_EVENT_BATMON_TEMP);
请注意、您需要包含 driverlib 中的 aon_event.h。 您还需要确保您使用的唤醒事件不会被系统的其他部分使用。 (我知道 AON_EVENT_MCU_WU0用于 RTC、 AON_EVENT_MCU_WU1用于 IO)
然后、您应该使用如下所示的代码为 BATMON_VOLT 事件注册回调函数。
AONEventMcuSet(AON_EVENT_MCU_EVENT0, AON_EVENT_BATMON_VOLT); // Set the event source of AON_PROG0 to AON_EVENT_BATMON_VOLT IntRegister(INT_AON_PROG0, INT_AON_PROG0_CallbackFxn); // Register callback function for AON_PROG0 (which is set to AON_EVENT_BATMON_VOLT) IntPendClear(INT_AON_PROG0); IntEnable(INT_AON_PROG0); // Enable interrupt for AON_PROG0
请注意、您需要包含 driverlib 中的 aon_event.h、interrupt.h。
在回调函数中(在我的示例中名为 INT_AON_PROG0_CallbackFxn)、您需要通过调用 AONBatMonNewBatteryMeasureReady (在 driverlib 中的 aon_batmon.h 中声明)来清除事件。
此致、
尼古拉伊
Nikolaj、您好!
客户的器件在执行代码后挂起、无论处于调试模式还是脱机运行。
如果注释掉以下句子、程序运行正常。
//IntRegister(INT_AON_PROG0, INT_AON_PROG0_CallbackFxn); // Register callback function for AON_PROG0 (which is set to AON_EVENT_BATMON_VOLT) //IntPendClear(INT_AON_PROG0); //IntEnable(INT_AON_PROG0);
此致、
水阳