Marco Zecchini
/
Example_RTOS
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sun Jul 17 2022 08:25:26 by 1.7.2