summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2018-10-29 10:27:38 +0800
committerGitHub <[email protected]>2018-10-29 10:27:38 +0800
commit98fc1cb4cf0fd20a79f16b72fd72846c207702b5 (patch)
treeb5821ff709d36cfbf534d85e0da0bf9fe81ea27a /examples
parent05b58271b0f089fe2f599da124ecc651bee78d54 (diff)
parent2d59fe031038e94dd626f3b172653bcb9bab9a2d (diff)
Merge pull request #1933 from armink/add_pm
[DeviceDriver] Add power management device driver.
Diffstat (limited to 'examples')
-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 */
+