This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Stopping a continuous while loop on MSP430

Other Parts Discussed in Thread: MSP430G2553

In my microprocessing class our teacher has made us program a MSP430G2553 to do light up 8 led's in a certain sequence when a button is pressed.  The micro is attached to a Breadboard that is then connected to two buttons and the 8 led's.  When the power is connected none of the lights will be lit.  When one button is pressed a sequence will begin and continue until the person presses both buttons at the same time.  The same goes for the second button.  I have been able to achieve two of the three parts.  The only part I have trouble is getting out of the while loop/pressing the 2 buttons at the same time.  I have tried multiple methods but with no results.  I have attached the code so you could help me out with this. 

p.s.  Teacher is horrible assumes everyone in class can already program / no book to read from.  Is there any websites/books that I could use to help me understand this material?

3482.Code.txt
/*
 * main.c
 */
#include <MSP430G2553.h>

#define DELAY 159000
#define DELAY_1 1000000

void main()
{
  WDTCTL = WDTPW+WDTHOLD;
  P1DIR = 0xFF;

  P2REN |= (BIT3|BIT4);
  P2OUT &= (~(BIT3|BIT4));

  unsigned int i;

while(1)
 {
  P1OUT = 0x00;
   if(P2IN&BIT3)
   {
	while(1)
   {
    P1OUT = BIT3|BIT4;
    _delay_cycles(DELAY);

    P1OUT = BIT2|BIT5;
    _delay_cycles(DELAY);

    P1OUT = BIT1|BIT6;
    _delay_cycles(DELAY);

    P1OUT = BIT0|BIT7;
    _delay_cycles(DELAY);
     }
    }

 if(P2IN&BIT4)
  {
  while(1)
   {
    P1OUT = BIT0|BIT2;
    for(i=0; i<6; i++)
    {
        _delay_cycles(DELAY_1);
    	P1OUT = P1OUT << 1;
    }

    P1OUT = BIT7|BIT5;
    for(i=0; i<6; i++)
    {
        _delay_cycles(DELAY_1);
    	P1OUT = P1OUT >> 1;
    }
   }
  }
 }
}

**Attention** This is a public forum