domingo, 3 de octubre de 2010

Ejemplo IAR Kickstart con LaunchPad

Este capítulo intentará orientar cómo crear proyectos con el compilador (versión limitada) de la empresa IAR que podremos descargar posteriormente a nuestra placa LaunchPad.

Para seguir los pasos que aquí se exponen, deberíamos antes haber instalado dicha herramienta tal y cómo se comenta en el siguiente enlace: Instalación IAR Kickstart.

El código que vamos a utilizar para este tutorial, es el siguiente:

/*----------------------------------------------------------------------
AqueronteBlog@gmail.com

Este archivo es propiedad intelectual del blog Aqueronte,
cuya dirección web, es la siguiente:

http://unbarquero.blogspot.com/

Se permite cualquier modificación del archivo siempre y cuando
se mantenga la autoría del autor.

----------------------------------------------------------------------

Filename: main.c
Date: 3-Octubre-10
File Version: vs0.0

Author: Manuel Caballero
Company: Hades

----------------------------------------------------------------------

Notes: Ejemplo de uso para la plataforma MSP-EX430G2,
donde los dos leds se enciende simultáneamente
*/


#include "io430.h"

void retardo (volatile unsigned int); // Prototype function retardo

int main(void) {

WDTCTL
= WDTPW + WDTHOLD; // Stop watchdog timer
BCSCTL3
|= LFXT1S_2; // Set ACLK to use internal VLO (12 kHz clock)

P1DIR
|= 0x41; // Set P1.0 & P1.6 to output direction
P1OUT
&= 0x00; // Reset P1OUT

while(1){
P1OUT ^= BIT0 + BIT6;
// Toggle P1.0 & P1.6
retardo
(50000);
}
}

void retardo (volatile unsigned int i)
{
do (i--);
while (i != 0);
}

Como se puede observar, la función es sencilla: hace parpadear ambos leds de la placa LaunchPad simultáneamente.

En este tutorial se ha trabajado desde el Escritorio, creando una carpeta con el nombre: BlinkLeds.

Lo primero que tenemos que hacer, es arrancar el programa y crearemos un nuevo proyecto, desde la barra de herramienta:

Project -> Create New Project...

Y se nos muestra la siguiente ventana de configuración:



Elegimos el apartado C y guardamos con el nombre BlinkLeds en la carpeta creada anteriormente, con el mismo nombre, en el Escritorio.

Si nos fijamos a la derecha en Workspace, vemos que ya se ha generado nuestro proyecto de manera automática e incluso se ha agregado el archivo principal (main.c) a su raíz.



Vamos a configurar nuestro proyecto acorde al dispositivo que vamos a emplear, en este caso: MSP430G2231 que es uno de los microcontroladores que trae la placa de desarrollo LaunchPad.

Para tal fin, desde la barra de herramientas:

Project -> Options...

Se nos muestra la siguiente ventana de configuración:



En el menú de la derecha (Category), pulsamos sobre: General Options y a la izquierda de la ventana donde pone Device, pulsamos sobre el botón y seleccionamos nuestro microcontrolador:

MSP430Gxxx Family -> MSP430G2231

Realmente esta ventana es bastante interesante analizarla, pero entrar en profundidad sobre sus opciones está fuera del contexto de este capítulo, se hará en otros capítulos posteriores. El fin aquí estudiado es diseñar un código con esta herramienta y poder estar en contacto con nuestra placa LaunchPad.

Por lo tanto, seguimos, en el menú de la derecha, pulsamos sobre Debugger, y a la izquierda, en Driver debemos seleccionar FET Debugger tal y como se muestra en la siguiente imagen:



Para asegurarnos de que realmente va a existir comunicación entre la placa LaunchPad y el IDE de la casa IAR, en el menú de la derecha en FET Debugger nos aseguramos que estén las opciones tal y como se indican en la siguiente imagen:



Pues bien, ya estamos en condiciones de escribir nuestro código expuesto anteriormente:



Y sólo nos falta compilar, desde la barra de herramientas:

Project -> Rebuild All

Nos pedirá el nombre del entorno de trabajo (Workspace) y la ruta para guardarlo, por defecto le ponemos el mismo nombre del proyecto y se guardará en la misma carpeta creada en el Escritorio.

Y el resultado que nos dará el compilador, si todo ha ido satisfactoriamente, es por la ventana de mensajes es:

Updating build tree...
2 file(s) deleted.


Updating build tree...

main.c

Linking


Total number of errors: 0

Total number of warnings: 0


Pues bien, eso significa que ya está compilado nuestro proyecto y se ha generado el código necesario para ser programado en nuestro dispositivo y poder depurarlo desde el propio IDE.

Teniendo conectada nuestra placa LaunchPad vamos a depurar el código compilado, desde la barra de herramienta:

Project -> Download and Debug

Si todo ha ido correctamente, el IDE se mostrará algo tal y cómo se muestra en la siguiente imagen:


Podemos ver cómo cambian los registros y que ocurre en el dispositivo si depuramos paso a paso, pero el fin de este tutorial, es simplemente que el IDE y la placa LaunchPad estén en contacto y se haya programado nuestro código, por lo tanto, pulsamos sobre Go, desde la barra de herramientas:

Debug -> Go

Y veremos que en nuestra LaunchPad se ejecutará nuestro código, para cerrar la ventana de depuración, desde la barra de herramientas:

Debug -> Stop Debugging

El IDE volverá a mostrarse como al principio para poder seguir programado. Como veréis, el uso de esta herramienta es bastante sencilla y rápida para crear aplicaciones que posteriormente podremos depurar en nuestra placa LaunchPad.

El proyecto completo lo podéis descargar desde la siguiente dirección:

Código Ejemplo para MSP430 LaunchPad
EjemploProyecto completo compilado.

El único problema que me he encontrado, es que la placa no termina su comunicación totalmente con el IDE, lo podemos comprobar si pulsamos sobre el botón de Reset de nuestra LaunchPad que no hace nada.

Por lo tanto, para terminar completamente esta comunicación, desconectaremos la placa y la volveremos a conectar a nuestro ordenador.

4 comentarios:

Anónimo dijo...

Muy bueno.

La programación es C, pero se puede programar en ensamblador?

Se agradece que alguien trabaje con este micro y ayude a los que estamos empezando con TI.

Un saludo

Manuel Caballero dijo...

Buenas:

Si se puede trabajar también en ensamblador, lo que pasa que las características de este micro le hacen especiales e idóneas para que sea programado en lenguaje C.

Pronto tendremos publicaremos programas en ensamblador y en C de este microcontrolador.

Un saludo y gracias por tu comentario.

Anónimo dijo...

que tal!

Estoy empezando a trabajar con este Micro, la verdad soy nuevo en todo esto, algun manual o guia para PRINCIPIANTES?

Gracias!

Manuel Caballero dijo...

Buenas:

Para principiantes te puede servir este blog, los ejemplos tanto en lenguaje C como ASM que te puedes descargar desde la propia página de TI y existen libros especializados en el MSP430 donde podrás aprender en profundidad sobre la arquitectura de la familia de este microcontrolador.

Un saludo.