Jugando con el MSP432. Blink.

Para empezar todo un clásico como hacer parpadear un led.
El MSP432P401R launchpad incluye dos leds: uno rojo y uno RGB.
Los leds del launchpad MSP432P401R

Pin Led
P1.0 rojo normal.
P2.0 rojo RGB
P2.1 Verde RGB
P2.2 Azul RGB

1. Un proyecto nuevo.
Empezamos creando un proyecto nuevo a partir del ejemplo “blink a led”.

#include "msp.h"

void main(void)
{
    volatile uint32_t i;

    WDTCTL = WDTPW | WDTHOLD;                    /* Stop watchdog timer */

    // The following code toggles P1.0 port
    P1DIR |= BIT0;                               /* Configure P1.0 as output */

    while(1)
    {
        P1OUT ^= BIT0;                           /* Toggle P1.0 */
        for(i=10000; i>0; i--);                  /* Delay */
    }
}

2. Hagámosle unos cambios:

#include "msp.h"

#define LED_RED_ON P1OUT |= BIT0;
#define LED_RGB_RED_ON P2OUT |= BIT0;
#define LED_RGB_GREEN_ON P2OUT |= BIT1;
#define LED_RGB_BLUE_ON P2OUT |= BIT2;

#define LED_RED_OFF P1OUT &= ~BIT0;
#define LED_RGB_RED_OFF P2OUT &= ~BIT0;
#define LED_RGB_GREEN_OFF P2OUT &= ~BIT1;
#define LED_RGB_BLUE_OFF P2OUT &= ~BIT2;


void initGPIO () {
	P1DIR |= BIT0;
	P2DIR |= BIT0  | BIT1 | BIT2;
}

void pause (uint32_t value) {
	volatile uint32_t i;
	for(i=value; i>0; i--);
}


void main(void)
{


    WDTCTL = WDTPW | WDTHOLD;                    /* Stop watchdog timer */

    initGPIO();

    int n;

    while(1)
    {
    	for (n=2; n >0; n--) {
    		LED_RED_ON
			pause(1000);
    		LED_RED_OFF
			pause(100000);
    	}

    	LED_RGB_BLUE_ON
		pause(1000);
    	LED_RGB_BLUE_OFF;
    	pause(100000);

    }
}

El mismo proyecto utilizando la driverlib

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload CAPTCHA.