mbed-os/features/unsupported/tests/mbed/interruptin_2/main.cpp

146 lines
3.5 KiB
C++

#include "mbed.h"
#if !DEVICE_INTERRUPTIN
#error [NOT_SUPPORTED] InterruptIn is not supported
#endif
#if defined(TARGET_LPC4088)
InterruptIn button(p18);
InterruptIn button1(p17);
InterruptIn button2(p16);
InterruptIn button3(p15);
InterruptIn button4(p14);
InterruptIn button5(p13);
InterruptIn button6(p12);
InterruptIn button7(p11);
InterruptIn button8(p10);
InterruptIn button9(p9);
DigitalOut led(LED1);
DigitalOut flash(LED4);
#elif defined(TARGET_LPC1114)
InterruptIn button(p30); // SW2 (User switch)
InterruptIn button1(p5);
InterruptIn button2(p6);
InterruptIn button3(p7);
InterruptIn button4(p9);
InterruptIn button5(p10);
InterruptIn button6(p12);
InterruptIn button7(p13);
InterruptIn button8(p14);
InterruptIn button9(p15);
DigitalOut led(LED1);
DigitalOut flash(LED2);
#elif defined(TARGET_SAMR21G18A)
InterruptIn button (PA28); /*SW0*/
InterruptIn button1(PA06);
InterruptIn button2(PA07);
InterruptIn button3(PB03);
InterruptIn button4(PA16);
InterruptIn button5(PA17);
InterruptIn button6(PA05);
InterruptIn button7(PA04);
InterruptIn button8(PA14);
InterruptIn button9(PA15);
DigitalOut led(LED1);
DigitalOut flash(PA22); /*1 LED Available*/
#elif defined(TARGET_SAMD21J18A)
InterruptIn button (PA15); /*SW0*/
InterruptIn button1(PA16);
InterruptIn button2(PB01);
InterruptIn button3(PA18);
InterruptIn button4(PA03);
InterruptIn button5(PA04);
InterruptIn button6(PA05);
InterruptIn button7(PA06);
InterruptIn button8(PA07);
InterruptIn button9(PA28);
DigitalOut led(LED1);
DigitalOut flash(PA27); /*1 LED Available*/
#elif defined(TARGET_SAMD21G18A)
InterruptIn button (PB23); /*SW0*/
InterruptIn button1(PA02);
InterruptIn button2(PA03);
InterruptIn button3(PA10);
InterruptIn button4(PA11);
InterruptIn button5(PA20);
InterruptIn button6(PA21);
InterruptIn button7(PA09);
InterruptIn button8(PA16);
InterruptIn button9(PA17);
DigitalOut led(LED1);
DigitalOut flash(PA19); /*1 LED Available*/
#elif defined(TARGET_SAML21J18A)
InterruptIn button (PA02); /*SW0*/
InterruptIn button1(PA16);
InterruptIn button2(PA17);
InterruptIn button3(PA15);
InterruptIn button4(PA19);
InterruptIn button5(PA04);
InterruptIn button6(PA05);
InterruptIn button7(PA06);
InterruptIn button8(PA07);
InterruptIn button9(PB08);
DigitalOut led(LED1);
DigitalOut flash(PA27); /*1 LED Available*/
#elif defined(TARGET_SAMG55J19)
InterruptIn button (PA02); /*SW0*/
InterruptIn button1(PA17);
InterruptIn button2(PA26);
InterruptIn button3(PA25);
InterruptIn button4(PA00);
InterruptIn button5(PA23);
InterruptIn button6(PA24);
InterruptIn button7(PA29);
InterruptIn button8(PB10);
InterruptIn button9(PA10);
DigitalOut led(LED1);
DigitalOut flash(PA14); /*1 LED Available*/
#else
InterruptIn button(p30);
InterruptIn button1(p29);
InterruptIn button2(p28);
InterruptIn button3(p27);
InterruptIn button4(p26);
InterruptIn button5(p25);
InterruptIn button6(p24);
InterruptIn button7(p23);
InterruptIn button8(p22);
InterruptIn button9(p21);
DigitalOut led(LED1);
DigitalOut flash(LED4);
#endif
void flip() {
led = !led;
}
int main() {
flash = 0;
led = 0;
#if defined(TARGET_LPC1114)
button.mode(PullUp);
#endif
button.rise(&flip); // attach the address of the flip function to the rising edge
button1.rise(&flip);
button2.rise(&flip);
button3.rise(&flip);
button4.rise(&flip);
button5.rise(&flip);
button6.rise(&flip);
button7.rise(&flip);
button8.rise(&flip);
button9.rise(&flip);
while(1) { // wait around, interrupts will interrupt this!
flash = !flash;
wait(0.25);
}
}