test_pm.c 689 B

12345678910111213141516171819202122232425262728
  1. #include "user.h"
  2. static int32_t test_done(void *pData, void *pParam)
  3. {
  4. DBG("RTC唤醒, 测试结束");
  5. PM_SetDriverRunFlag(PM_DRV_DBG, 1);
  6. }
  7. void prvPM_Test(void *p)
  8. {
  9. DBG("测试在1秒后开始,休眠60秒后RTC唤醒恢复");
  10. Task_DelayMS(1000);
  11. PM_SetDriverRunFlag(PM_DRV_DBG, 0); //DBG是开机就打开的,如果没有其他外设使用,关闭这个就可以进入低功耗
  12. RTC_SetAlarm(60, test_done, 1); //开个RTC唤醒一下,或者键盘,或者GPIO
  13. while(1)
  14. {
  15. Task_DelayMS(1000);
  16. DBG("UTC %llu", RTC_GetUTC());
  17. }
  18. }
  19. void PM_TestInit(void)
  20. {
  21. Task_Create(prvPM_Test, NULL, 1024, SERVICE_TASK_PRO, "pm task");
  22. }
  23. //INIT_TASK_EXPORT(PM_TestInit, "3");