mirror of https://github.com/ARMmbed/mbed-os.git
146 lines
3.5 KiB
C++
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);
|
|
}
|
|
}
|