Code to demonstrate use of the two buttons to toggle LED's

Dependencies:   mbed

Fork of nRF_buttons by UCL IoT

Committer:
smartsystemdesign
Date:
Wed Sep 07 15:48:11 2016 +0000
Revision:
2:2ee8a0e3e3f9
Parent:
1:0133472f4825
Added the rest of the buttons and LEDs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djmannion 0:f932320f7606 1 /*
djmannion 0:f932320f7606 2 This code uses the button1 to toggle LED1 and button2 to toggle LED2
djmannion 0:f932320f7606 3 Author: Dan M
djmannion 0:f932320f7606 4 Date Created: 12.12.2014
djmannion 0:f932320f7606 5 Last Update: 12.12.2014
djmannion 0:f932320f7606 6 */
djmannion 0:f932320f7606 7 #include "mbed.h"
smartsystemdesign 2:2ee8a0e3e3f9 8 /* Define pin names and numbers */
smartsystemdesign 2:2ee8a0e3e3f9 9
smartsystemdesign 2:2ee8a0e3e3f9 10 #define SW4 p16
smartsystemdesign 2:2ee8a0e3e3f9 11 #define SW3 p15
smartsystemdesign 2:2ee8a0e3e3f9 12 #define SW2 p14
smartsystemdesign 2:2ee8a0e3e3f9 13 #define SW1 p13
smartsystemdesign 2:2ee8a0e3e3f9 14
djmannion 1:0133472f4825 15 /*Function Prototypes*/
djmannion 1:0133472f4825 16 void trigger1();//Button1 Interrupt function
djmannion 1:0133472f4825 17 void trigger2();//Button2 Interrup Function
smartsystemdesign 2:2ee8a0e3e3f9 18 void trigger3();//Button1 Interrupt function
smartsystemdesign 2:2ee8a0e3e3f9 19 void trigger4();//Button2 Interrup Function
djmannion 1:0133472f4825 20
djmannion 0:f932320f7606 21 //Instantiate IO objects
djmannion 0:f932320f7606 22 DigitalOut led_1(LED1);
djmannion 0:f932320f7606 23 DigitalOut led_2(LED2);
smartsystemdesign 2:2ee8a0e3e3f9 24 DigitalOut led_3(LED3);
smartsystemdesign 2:2ee8a0e3e3f9 25 DigitalOut led_4(LED4);
smartsystemdesign 2:2ee8a0e3e3f9 26
djmannion 0:f932320f7606 27 DigitalIn sw_1(SW1);
djmannion 0:f932320f7606 28 DigitalIn sw_2(SW2);
smartsystemdesign 2:2ee8a0e3e3f9 29 DigitalIn sw_3(SW3);
smartsystemdesign 2:2ee8a0e3e3f9 30 DigitalIn sw_4(SW4);
smartsystemdesign 2:2ee8a0e3e3f9 31
djmannion 1:0133472f4825 32 //Instantiate input interrupts
djmannion 1:0133472f4825 33 InterruptIn sw1Press(SW1);
djmannion 1:0133472f4825 34 InterruptIn sw2Press(SW2);
smartsystemdesign 2:2ee8a0e3e3f9 35 InterruptIn sw3Press(SW3);
smartsystemdesign 2:2ee8a0e3e3f9 36 InterruptIn sw4Press(SW4);
djmannion 0:f932320f7606 37
djmannion 0:f932320f7606 38 int main() {
djmannion 1:0133472f4825 39 //Initialise LED output
djmannion 0:f932320f7606 40 led_1=0;
djmannion 0:f932320f7606 41 led_2=0;
smartsystemdesign 2:2ee8a0e3e3f9 42 led_3=0;
smartsystemdesign 2:2ee8a0e3e3f9 43 led_4=0;
smartsystemdesign 2:2ee8a0e3e3f9 44
smartsystemdesign 2:2ee8a0e3e3f9 45 //Choose falling edge interrupt and connect to appropriate interrupt function
djmannion 1:0133472f4825 46 sw1Press.fall(&trigger1);
djmannion 1:0133472f4825 47 sw2Press.fall(&trigger2);
smartsystemdesign 2:2ee8a0e3e3f9 48 sw3Press.fall(&trigger3);
smartsystemdesign 2:2ee8a0e3e3f9 49 sw4Press.fall(&trigger4);
djmannion 1:0133472f4825 50 while(1) {}
djmannion 0:f932320f7606 51 }
djmannion 1:0133472f4825 52 /*Button1 interrupt function*/
djmannion 1:0133472f4825 53 void trigger1()
djmannion 1:0133472f4825 54 {
djmannion 1:0133472f4825 55 led_1=!led_1;
djmannion 1:0133472f4825 56 }
djmannion 1:0133472f4825 57 /*Button2 interrupt function*/
djmannion 1:0133472f4825 58 void trigger2()
djmannion 1:0133472f4825 59 {
djmannion 1:0133472f4825 60 led_2=!led_2;
smartsystemdesign 2:2ee8a0e3e3f9 61 }
smartsystemdesign 2:2ee8a0e3e3f9 62 /*Button3 interrupt function*/
smartsystemdesign 2:2ee8a0e3e3f9 63 void trigger3()
smartsystemdesign 2:2ee8a0e3e3f9 64 {
smartsystemdesign 2:2ee8a0e3e3f9 65 led_3=!led_3;
smartsystemdesign 2:2ee8a0e3e3f9 66 }
smartsystemdesign 2:2ee8a0e3e3f9 67 /*Button4 interrupt function*/
smartsystemdesign 2:2ee8a0e3e3f9 68 void trigger4()
smartsystemdesign 2:2ee8a0e3e3f9 69 {
smartsystemdesign 2:2ee8a0e3e3f9 70 led_4=!led_4;
djmannion 1:0133472f4825 71 }