Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalOut led1(LED1); 00004 DigitalOut led2(LED2); 00005 InterruptIn button(USER_BUTTON); 00006 00007 //____________________________ 00008 00009 Thread thread1; 00010 Thread thread2; 00011 00012 //____________________________ 00013 00014 bool is_debug_enabled = false; 00015 bool is_t2_done = true; 00016 bool is_t1_done = false; 00017 00018 void toggle_debug_mode() { 00019 is_debug_enabled = !is_debug_enabled; 00020 } 00021 00022 void led1_thread(DigitalOut *led) { 00023 if(is_debug_enabled) 00024 printf("T1 STARTED\n"); 00025 while (true) { 00026 if(is_t2_done){ 00027 if(is_debug_enabled) 00028 printf("T1 EXECUTING\n"); 00029 is_t1_done = false; 00030 is_t2_done = false; 00031 *led = !*led; 00032 wait(1); 00033 *led = !*led; 00034 is_t1_done = true; 00035 if(is_debug_enabled) 00036 printf("T1 DONE\n\n"); 00037 } 00038 } 00039 } 00040 00041 void led2_thread(DigitalOut *led) { 00042 if(is_debug_enabled) 00043 printf("T2 STARTED\n"); 00044 while (true) { 00045 if(is_t1_done){ 00046 if(is_debug_enabled) 00047 printf("T2 EXECUTING\n"); 00048 is_t1_done = false; 00049 is_t2_done = false; 00050 *led = !*led; 00051 wait(1); 00052 *led = !*led; 00053 is_t2_done = true; 00054 if(is_debug_enabled) 00055 printf("T2 DONE\n\n"); 00056 } 00057 } 00058 } 00059 00060 int main() { 00061 button.rise(&toggle_debug_mode); 00062 thread1.start(callback(led1_thread, &led1)); 00063 thread2.start(callback(led2_thread, &led2)); 00064 thread1.join(); 00065 thread2.join(); 00066 }
Generated on Wed Aug 31 2022 20:29:07 by
1.7.2