I have been working on MSP430 for sometime now. It is an TI (Texas Instruments ) chip. Very fun to play with. We are using a MSP430FG461x series experimental board. This little experimental board has all the bells and whistles one may need to create any application from a home automation controller to a simple step-motor driver. TI provides very good documentation for this grown up toy.
Our first lab homework for this baby was :
By using the MSP430 FG4618 Microcontroller, write a program that controls the LED #1, #2,#4.When we perpetually push the two buttons at the right bottom corner of the board, all ofthe LEDs turn on.When we push perpetually one of the buttons, only the LED #4 blinks, the others turn off.When we push no buttons, the LED #1 and #2 blinks complementarily and the LED#4 turnsoff.
My biggest problem with this exercise was to find what led was connected to what port. However in the end I figured it all out.
Below you will find the program :
#include <msp430xG46x.h>
void initPortPins(void);
void main(void)
{
WDTCTL=WDTPW + WDTHOLD;
initPortPins();
while(1) {
if (P1IN == (0x00))
{
P2OUT |= 0x06;
P5OUT |= 0x02;
}
else if (P1IN == 0x03)
{
P2OUT &= 0x00;
P5OUT &= 0x00;
P2OUT |= 0x02;
__delay_cycles (40000);
P2OUT &= 0x00;
P2OUT |= 0x04;
__delay_cycles (40000);
}
else
{
P2OUT &= 0x00;
P5OUT &= 0x00;
__delay_cycles (40000);
P5OUT |= 0x02;
__delay_cycles (40000);
}
}
};
void initPortPins(void)
{
P1DIR = 0x00; // Set P2.2,1 as outputs
P5DIR = 0x02; // Set P5.1 as output
P2DIR = 0x06; // Set P2.1 to 1
};

