I am trying to write a simple program that will do the following. On power up, LED1 (P1.0) and LED2 (P1.6) are off.
When S2 is pressed(P1.3) LED1 comes on
When S2 is relesed , LED1 remains on, and remains on until S2 is pressed again, or
until power is removed.
Then when S2 is pressed a second time, LED1 switches off, and LED2 switches on. LED2
remains on until S2 is pressed again, or until power is removed.
My target board is msp430g2231 Launchpad
Here is what I have so far. I works but is not 100%. I’m new to this so any help would be greatly appreciated. I’ve done this is CCE v4.
#include “msp430g2231.h”
#define red_LED BIT0
#define grn_LED BIT6
#define BTN BIT3
void delay(void);
void main(void) {
WDTCTL = WDTPW + WDTHOLD;
P1OUT = 0x00; //Turn off Red Led
P1DIR |= red_LED; // Set P1.0 as an output pin Red Led
P1DIR |= grn_LED; // Set P1.6
while(1){
while ((P1IN & BTN) == BTN); // wait for button press
P1OUT |= red_LED; // turn on Red LED
while ((P1IN & BTN) == BTN); // wait for button press
P1OUT ^= red_LED; // turn off red LED
while ((P1IN & BTN) == BTN); // wait for button press
P1OUT |= grn_LED; // turn on grn LED
while ((P1IN & BTN) == BTN); // wait for button press // waits here while button is pushed in
P1OUT ^= grn_LED; // turn off grn LED
while ((P1IN & BTN) == BTN); // wait for button press;
}
}