嗨,对话框:
我使用DA14580已经12个月了。从SDK 3.0.2到3.0.10,但我总是遇到一个问题。当我打开由两个PWM脉冲控制的LED时,我使用了app_disable_sleep()函数,所以LED可以很好地工作。当我关闭LED时,我调用函数app_set_extended_sleep()以确保设备在低功耗模式下工作。
它工作的很好,但当我使用LED几个小时(当我打开LED,我调用app_disable_sleep每秒一次),PWM不能很好地工作。我认为调用app_disable_sleep()不起作用。为什么? ?
设备:
嗨,李阳,
你认为PWM不工作是什么意思,你认为da睡着了,尽管禁用睡眠发出?从哪里你调用函数,以唤醒系统和启动PWM ?是外部中断吗?你说在一开始这个实现工作得很好,但是随着时间的推移问题就出现了?你有没有尝试过实现相同的功能(闪烁一个led),但使用ke_timer来查看问题是否持续?
由于MT_dialog
嗨,MT_dialog,
PWM不能很好地工作,因为在函数BLE_WAKEUP_LP_Handler()中调用了外围init()。我的PWM控制LED,这是指示设备的充电状态。
嗨,李阳,
为什么您认为BLE_WAKEUP_LP_Handler()中的peripher_init()函数会给您带来问题?当前的实现是工作的,随着时间的推移,它没有,我理解正确吗?在你的实现的哪一点你调用函数,以启动系统和启动PWM?
由于MT_dialog
嗨,MT_dialog,
正如我说的,我的PWM控制LED,这是指示设备充电的状态。当我给我的设备充电时,我需要一个连续的PWM波很长时间。实际上,当设备运行几个小时,PWM不是连续的。你会看到LED在闪烁。但我需要LED能持续发光。
除了在BLE_WAKEUP_LP_Handler()中调用外围init()函数,哪一个可以使PWM不连续?
嗨,李阳,
看门狗定时器开启。也许这是因为它。如果系统没有休眠,它就不会重新初始化看门狗定时器,并且看门狗定时器溢出,这会导致系统发出平台重置命令并重新启动。你能不能禁用看门狗定时器,如果它是启用的,并给它一个尝试?
由于MT_dialog
嗨,MT_dialog,
这和看门狗定时器没有关系。
由于李阳
嗨,李阳,
项目中是否启用了看门狗计时器?
您可以通过使用自定义空函数替换jump_table.c文件中的platform_reset_func来检查平台重置是否存在问题,并尝试在调试中使用断点来捕获该函数的调用。
由于MT_dialog
嗨,MT_dialog,
相信我,这和看门狗定时器无关。
由于李阳
嗨,李阳,
你能检查如果问题持续如果你不调用禁用睡眠,但尝试保持da14580清醒在app_asynch_proc函数充电时,不让它进一步下移在循环以便入睡?
由于MT_dialog