sample K64F program using the RTOS (fully updated + Mbed sdk updated) with EthernetInterface added

Dependencies:   EthernetInterface mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "rtos.h"
00003 
00004 DigitalOut led1(LED1);
00005 InterruptIn sw2(SW2);
00006 uint32_t button_pressed;
00007 Thread *thread2;
00008 
00009 void sw2_press(void)
00010 {
00011     thread2->signal_set(0x1);
00012 }
00013 
00014 void led_thread(void const *argument)
00015 {
00016     while (true) {
00017         led1 = !led1;
00018         Thread::wait(1000);
00019     }
00020 }
00021 
00022 void button_thread(void const *argument)
00023 {
00024     while (true) {
00025         Thread::signal_wait(0x1);
00026         button_pressed++;
00027     }
00028 }
00029 
00030 int main()
00031 {
00032     Thread thread(led_thread);
00033     thread2 = new Thread(button_thread);
00034 
00035     button_pressed = 0;
00036     sw2.fall(&sw2_press);
00037     while (true) {
00038         Thread::wait(5000);
00039         printf("SW2 was pressed (last 5 seconds): %d \n", button_pressed);
00040         fflush(stdout);
00041         button_pressed = 0;
00042     }
00043 }