From 2d59fe031038e94dd626f3b172653bcb9bab9a2d Mon Sep 17 00:00:00 2001 From: armink Date: Mon, 29 Oct 2018 09:49:12 +0800 Subject: [DeviceDriver] Add power management device driver. --- examples/pm/timer_app.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 examples/pm/timer_app.c (limited to 'examples') 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 +#include +#include + +#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 */ + -- cgit v1.3.1