import RT-Thread@9217865c without bsp, libcpu and components/net
This commit is contained in:
commit
e2376a3709
1414 changed files with 390370 additions and 0 deletions
55
examples/pm/timer_app.c
Normal file
55
examples/pm/timer_app.c
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-08-07 Tanek first implementation
|
||||
* 2019-05-06 Zero-Free adapt to the new power management interface
|
||||
*/
|
||||
|
||||
#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_DEEP);
|
||||
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
INIT_APP_EXPORT(timer_app_init);
|
||||
|
||||
#endif /* RT_USING_PM */
|
||||
|
77
examples/pm/wakeup_app.c
Normal file
77
examples/pm/wakeup_app.c
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2019-05-09 Zero-Free first implementation
|
||||
*/
|
||||
|
||||
#include <board.h>
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
|
||||
#ifdef RT_USING_PM
|
||||
|
||||
#define WAKEUP_EVENT_BUTTON (1 << 0)
|
||||
#define PIN_LED_R GET_PIN(E, 7)
|
||||
#define WAKEUP_PIN GET_PIN(C, 13)
|
||||
#define WAKEUP_APP_THREAD_STACK_SIZE 1024
|
||||
|
||||
static rt_event_t wakeup_event;
|
||||
|
||||
static void wakeup_callback(void *args)
|
||||
{
|
||||
rt_event_send(wakeup_event, WAKEUP_EVENT_BUTTON);
|
||||
}
|
||||
|
||||
static void wakeup_init(void)
|
||||
{
|
||||
rt_pin_mode(WAKEUP_PIN, PIN_MODE_INPUT_PULLUP);
|
||||
rt_pin_attach_irq(WAKEUP_PIN, PIN_IRQ_MODE_FALLING, wakeup_callback, RT_NULL);
|
||||
rt_pin_irq_enable(WAKEUP_PIN, 1);
|
||||
}
|
||||
|
||||
static void wakeup_app_entry(void *parameter)
|
||||
{
|
||||
wakeup_init();
|
||||
rt_pm_request(PM_SLEEP_MODE_DEEP);
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (rt_event_recv(wakeup_event,
|
||||
WAKEUP_EVENT_BUTTON,
|
||||
RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,
|
||||
RT_WAITING_FOREVER, RT_NULL) == RT_EOK)
|
||||
{
|
||||
rt_pm_request(PM_SLEEP_MODE_NONE);
|
||||
|
||||
rt_pin_mode(PIN_LED_R, PIN_MODE_OUTPUT);
|
||||
rt_pin_write(PIN_LED_R, 0);
|
||||
rt_thread_delay(rt_tick_from_millisecond(500));
|
||||
rt_pin_write(PIN_LED_R, 1);
|
||||
|
||||
rt_pm_release(PM_SLEEP_MODE_NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int wakeup_app(void)
|
||||
{
|
||||
rt_thread_t tid;
|
||||
|
||||
wakeup_event = rt_event_create("wakup", RT_IPC_FLAG_PRIO);
|
||||
RT_ASSERT(wakeup_event != RT_NULL);
|
||||
|
||||
tid = rt_thread_create("wakeup_app", wakeup_app_entry, RT_NULL,
|
||||
WAKEUP_APP_THREAD_STACK_SIZE, RT_MAIN_THREAD_PRIORITY, 20);
|
||||
RT_ASSERT(tid != RT_NULL);
|
||||
|
||||
rt_thread_startup(tid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
INIT_APP_EXPORT(wakeup_app);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue