I am trying to create a program on the MSP432 Launchpad which will turn on the Green LED when neither of the two onboard buttons (P1.4 and P1.1) are being pressed and turn on the Red LED if only the P1.4 button is being pressed. With the code below, the Launchpad properly turns on the green LED when no buttons are being pressed, but does not turn on the Red LED when I am only pressing the P1.4 button. Is there any issue with my code or the configuration of the pins?
#include "msp.h"
#include "clock.h"
#include "TExaS.h"
void main()
{
Clock_Init48MHz();
/* Configuration of MSP42 */
P2->SEL0 &= ~0x03; // configure P2.0 and 2.1 as GPIO
P2->SEL1 &= ~0x03; // configure P2.0 and 2.1 as GPIO
P2->DIR |= 0x03; // configure P2.0 and P2.1 as output
//configure buttons on P1.1 and P1.4 as GPIO pull up inputs
P1->SEL0 &= ~0x12;
P1->SEL1 &= ~0x12;
P1->DIR &= ~0x12;
P1->REN |= 0x12;
P1->OUT |= 0x12;
//Application
while(1){
Clock_Delay1ms(100);
//if P1.4 and P1.1 are both not being pressed
if(P1->IN & 0x12){
P2->OUT |= 0x02; //turn on green light
P2->OUT &= ~0x01; //turn off red light
}
//if only P1.4 is pressed
else if(P1->IN & 0x10){
P2->OUT |= 0x01; //turn on red light
P2->OUT &= ~0x02; //turn off green light
}
}
}