Вы находитесь на странице: 1из 4

Tutorial MSP430 Prender un Led

Posted on julio 15, 2012

Tutorial MSP430 Prender un Led Bienvenido a mi casa. Venga libremente, vyase a salvo, y deje algo de la alegra que trae consigo Dracula, de Bram Stoker Vamos a trabajar con el microcontrolador MSP430F2011, debido a que tiene slo 14 pines, de los cuales podemos utilizar 10 pines como I/O, 2KB de memoria de programa (Flash Memory) y 12MB de memoria de datos (RAM). Naturalmente si en algn momento nos queda chico este micro migraremos a otro con mayor recursos.

En esta direccion de la empresa Texas Instruments se encuentran dos archivos que necesitamos tener a nuestro lado como material de consulta absoluto: 1. Datasheet del MSP430F2011 2. Guia de Usuario de la Familia MSP430X2XX Como podemos ver en la imagen, vamos a realizar un cdigo que active un nivel high en el pin 2 del MSP430F2011.

El cdigo que realizar esta tarea se muestra a continuacin


01 #include "io430.h"//libreria del propio IDE 02 03 #define LED1 P1OUT_bit.P1OUT_0//definicion del pin LED 04 05 int main( void ) //funcion principal 06 { 07 // Stop watchdog timer to prevent time out reset 08 WDTCTL = WDTPW + WDTHOLD; 09 10 CAPD = 0x00;//Habilitamos el output driver de todos los pines del puerto 1. 11 P1SEL = 0x00;//Seteamos la funcion de I/O en todos los pines del puerto 1. 12 P1DIR = 0xFF;//Seteamos todos los pines del puerto 1 como salida. 13 14 LED1 = 1;//nivel high en el pin LED 15 16 while(1);//bucle infinito 17 }

Como pueden notar se trata de un lenguaje C que respeta el formato del ANSI C, prcticamente no hemos tocado an varios aspectos como el oscilador, modo de arranques, etc. Estos temas los iremos vislumbrando conforme avance el curso. Pero por ahora toca entender que significan estos 3 registros: CAPD, P1SEL, P1DIR, y que significa el label LED1.

CAPD, P1SEL, P1DIR se necesitan configurar de la siguiente manera para poder utilizar el pin 2 que corresponde con el P1.0, como output:

Observen que para que el pin P1.0 se comporte como un pin de salida (o de entrada) necesita que el bit 0 del registro P1DIR sea cero, debido a que ese registro define el comportamiento de entrada o salida del pin, donde un 1 significa salida y un 0 es entrada (contrario a cmo trabajan los PICs por ejemplo).

As mismo el bit 0 de P1SEL tiene que ser cero, pues esto le indica al pin que se comporte como un pin I/O, otro valor configurara al pin para que trabaje con algn perifrico que tiene multiplexado. En otro proyecto usaremos esta configuracin.

Y el bit 0 del registro CAPD tambin tiene que ser seteado a cero, para que habilite los buffers de entrada/salida del pin. Este registro tiene mayor relevancia cuando se usa el pin P1.0 en el modo comparador.

Despus de todo esto ya tenemos el pin P1.0 configurado como salida (en el cdigo lo hemos aplicado a todos los pines del puerto 1), entonces creamos el label LED1 que referencia al bit 0 del registro P1OUT (quien controla los pines de salida del puerto 1). #define LED1 P1OUT_bit.P1OUT_0, donde: P1OUT_bit = registro P1OUT P1OUT_0 = bit 0 del registro P1OUT

Вам также может понравиться