Daiki Kato
/
SoftwareStanby_test_use_OS
This is a sample to make Software Standby using OS.
main.cpp@2:c0f92fd0e8e9, 2019-10-07 (annotated)
- Committer:
- dkato
- Date:
- Mon Oct 07 03:38:30 2019 +0000
- Revision:
- 2:c0f92fd0e8e9
- Parent:
- 1:29fa0989ec31
- Child:
- 3:64e8fa1b8787
Supports mbed-os-5.14
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dkato | 0:27ae610e630e | 1 | #include "mbed.h" |
dkato | 0:27ae610e630e | 2 | |
dkato | 0:27ae610e630e | 3 | InterruptIn button(USER_BUTTON0); |
dkato | 0:27ae610e630e | 4 | DigitalOut led1(LED1); |
dkato | 0:27ae610e630e | 5 | Thread * pTestTask = NULL; |
dkato | 0:27ae610e630e | 6 | |
dkato | 0:27ae610e630e | 7 | static void interrupt_button(void) { |
dkato | 0:27ae610e630e | 8 | #if(0) // It may or may not be present. |
dkato | 0:27ae610e630e | 9 | if (pTestTask != NULL) { |
dkato | 0:27ae610e630e | 10 | pTestTask->signal_set(1); |
dkato | 0:27ae610e630e | 11 | } |
dkato | 0:27ae610e630e | 12 | #endif |
dkato | 0:27ae610e630e | 13 | } |
dkato | 0:27ae610e630e | 14 | |
dkato | 0:27ae610e630e | 15 | void test_task(void) { |
dkato | 0:27ae610e630e | 16 | int test_cnt = 0; |
dkato | 0:27ae610e630e | 17 | |
dkato | 0:27ae610e630e | 18 | button.fall(&interrupt_button); |
dkato | 0:27ae610e630e | 19 | button.rise(&interrupt_button); |
dkato | 0:27ae610e630e | 20 | |
dkato | 0:27ae610e630e | 21 | while (true) { |
dkato | 2:c0f92fd0e8e9 | 22 | sleep_manager_sleep_auto(); |
dkato | 0:27ae610e630e | 23 | #if(0) // It may or may not be present. |
dkato | 0:27ae610e630e | 24 | // It becomes sleep during idle task. |
dkato | 0:27ae610e630e | 25 | Thread::signal_wait(1); |
dkato | 0:27ae610e630e | 26 | #endif |
dkato | 0:27ae610e630e | 27 | led1 = !led1; |
dkato | 2:c0f92fd0e8e9 | 28 | printf("%d\r\n", test_cnt++); |
dkato | 2:c0f92fd0e8e9 | 29 | ThisThread::sleep_for(5); // Wait for output completion of printf(). |
dkato | 0:27ae610e630e | 30 | } |
dkato | 0:27ae610e630e | 31 | } |
dkato | 0:27ae610e630e | 32 | |
dkato | 0:27ae610e630e | 33 | int main() { |
dkato | 0:27ae610e630e | 34 | pTestTask = new Thread(); |
dkato | 0:27ae610e630e | 35 | pTestTask->start(test_task); |
dkato | 0:27ae610e630e | 36 | } |