summaryrefslogtreecommitdiff
path: root/examples/pm
diff options
context:
space:
mode:
authorarmink <[email protected]>2018-10-29 09:49:12 +0800
committerarmink <[email protected]>2018-10-29 09:54:52 +0800
commit2d59fe031038e94dd626f3b172653bcb9bab9a2d (patch)
tree1672d1d0d2e4b1673af2fd4cb2b86341779f5976 /examples/pm
parent125195c870f71b8e5c8841be25a0675a863dee62 (diff)
[DeviceDriver] Add power management device driver.
Diffstat (limited to 'examples/pm')
-rw-r--r--examples/pm/timer_app.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/pm/timer_app.c b/examples/pm/timer_app.c
new file mode 100644
index 0000000000..73faf52d0a
--- /dev/null
+++ b/examples/pm/timer_app.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-08-07 Tanek first implementation
+ */
+
+#include <board.h>
+#include <rtthread.h>
+#include <rtdevice.h>
+
+#ifndef RT_USING_TIMER_SOFT
+ #error "Please enable soft timer feature!"
+#endif
+
+#define TIMER_APP_DEFAULT_TICK (RT_TICK_PER_SECOND * 2)
+
+#ifdef RT_USING_PM
+
+static rt_timer_t timer1;
+
+static void _timeout_entry(void *parameter)
+{
+ rt_kprintf("current tick: %ld\n", rt_tick_get());
+}
+
+static int timer_app_init(void)
+{
+ timer1 = rt_timer_create("timer_app",
+ _timeout_entry,
+ RT_NULL,
+ TIMER_APP_DEFAULT_TICK,
+ RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER);
+ if (timer1 != RT_NULL)
+ {
+ rt_timer_start(timer1);
+
+ /* keep in timer mode */
+ rt_pm_request(PM_SLEEP_MODE_TIMER);
+
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+}
+INIT_EXPORT_APP(timer_app_init);
+
+#endif /* RT_USING_PM */
+