Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 #if !DEVICE_INTERRUPTIN
00004   #error [NOT_SUPPORTED] InterruptIn is not supported
00005 #endif
00006 
00007 #if defined(TARGET_LPC4088)
00008 InterruptIn button(p18);
00009 InterruptIn button1(p17);
00010 InterruptIn button2(p16);
00011 InterruptIn button3(p15);
00012 InterruptIn button4(p14);
00013 InterruptIn button5(p13);
00014 InterruptIn button6(p12);
00015 InterruptIn button7(p11);
00016 InterruptIn button8(p10);
00017 InterruptIn button9(p9);
00018 DigitalOut led(LED1);
00019 DigitalOut flash(LED4);
00020 
00021 #elif defined(TARGET_LPC1114)
00022 InterruptIn button(p30); // SW2 (User switch)
00023 InterruptIn button1(p5);
00024 InterruptIn button2(p6);
00025 InterruptIn button3(p7);
00026 InterruptIn button4(p9);
00027 InterruptIn button5(p10);
00028 InterruptIn button6(p12);
00029 InterruptIn button7(p13);
00030 InterruptIn button8(p14);
00031 InterruptIn button9(p15);
00032 DigitalOut led(LED1);
00033 DigitalOut flash(LED2);
00034 
00035 #elif defined(TARGET_SAMR21G18A)
00036 InterruptIn button (PA28); /*SW0*/
00037 InterruptIn button1(PA06);
00038 InterruptIn button2(PA07);
00039 InterruptIn button3(PB03);
00040 InterruptIn button4(PA16);
00041 InterruptIn button5(PA17);
00042 InterruptIn button6(PA05);
00043 InterruptIn button7(PA04);
00044 InterruptIn button8(PA14);
00045 InterruptIn button9(PA15);
00046 DigitalOut led(LED1);
00047 DigitalOut flash(PA22); /*1 LED Available*/
00048 
00049 #elif defined(TARGET_SAMD21J18A)
00050 InterruptIn button (PA15); /*SW0*/
00051 InterruptIn button1(PA16);
00052 InterruptIn button2(PB01);
00053 InterruptIn button3(PA18);
00054 InterruptIn button4(PA03);
00055 InterruptIn button5(PA04);
00056 InterruptIn button6(PA05);
00057 InterruptIn button7(PA06);
00058 InterruptIn button8(PA07);
00059 InterruptIn button9(PA28);
00060 DigitalOut led(LED1);
00061 DigitalOut flash(PA27); /*1 LED Available*/
00062 
00063 #elif defined(TARGET_SAMD21G18A)
00064 InterruptIn button (PB23); /*SW0*/
00065 InterruptIn button1(PA02);
00066 InterruptIn button2(PA03);
00067 InterruptIn button3(PA10);
00068 InterruptIn button4(PA11);
00069 InterruptIn button5(PA20);
00070 InterruptIn button6(PA21);
00071 InterruptIn button7(PA09);
00072 InterruptIn button8(PA16);
00073 InterruptIn button9(PA17);
00074 DigitalOut led(LED1);
00075 DigitalOut flash(PA19); /*1 LED Available*/
00076 
00077 #elif defined(TARGET_SAML21J18A)
00078 InterruptIn button (PA02); /*SW0*/
00079 InterruptIn button1(PA16);
00080 InterruptIn button2(PA17);
00081 InterruptIn button3(PA15);
00082 InterruptIn button4(PA19);
00083 InterruptIn button5(PA04);
00084 InterruptIn button6(PA05);
00085 InterruptIn button7(PA06);
00086 InterruptIn button8(PA07);
00087 InterruptIn button9(PB08);
00088 DigitalOut led(LED1);
00089 DigitalOut flash(PA27); /*1 LED Available*/
00090 
00091 #elif defined(TARGET_SAMG55J19)
00092 InterruptIn button (PA02); /*SW0*/
00093 InterruptIn button1(PA17);
00094 InterruptIn button2(PA26);
00095 InterruptIn button3(PA25);
00096 InterruptIn button4(PA00);
00097 InterruptIn button5(PA23);
00098 InterruptIn button6(PA24);
00099 InterruptIn button7(PA29);
00100 InterruptIn button8(PB10);
00101 InterruptIn button9(PA10);
00102 DigitalOut led(LED1);
00103 DigitalOut flash(PA14); /*1 LED Available*/
00104 
00105 #else
00106 InterruptIn button(p30);
00107 InterruptIn button1(p29);
00108 InterruptIn button2(p28);
00109 InterruptIn button3(p27);
00110 InterruptIn button4(p26);
00111 InterruptIn button5(p25);
00112 InterruptIn button6(p24);
00113 InterruptIn button7(p23);
00114 InterruptIn button8(p22);
00115 InterruptIn button9(p21);
00116 DigitalOut led(LED1);
00117 DigitalOut flash(LED4);
00118 #endif
00119 
00120 void flip() {
00121     led = !led;
00122 }
00123 
00124 int main() {
00125     flash = 0;
00126     led = 0;
00127 #if defined(TARGET_LPC1114)
00128     button.mode(PullUp);
00129 #endif
00130     button.rise(&flip);  // attach the address of the flip function to the rising edge
00131     button1.rise(&flip);
00132     button2.rise(&flip);
00133     button3.rise(&flip);
00134     button4.rise(&flip);
00135     button5.rise(&flip);
00136     button6.rise(&flip);
00137     button7.rise(&flip);
00138     button8.rise(&flip);
00139     button9.rise(&flip);
00140 
00141     while(1) {           // wait around, interrupts will interrupt this!
00142         flash = !flash;
00143         wait(0.25);
00144     }
00145 }