eZ430-Chronos tutorial – Part I

Sorry! It is in Spanish only and it is not finished. I will fix this as soon as possible.

 

 

El eZ430-Chronos es reloj basado en una plataforma de desarrollo para el microcontrolador MSP430 de Texas Instruments.

FOTO DEL RELOJ

TODO: DETALLES DEL RELOJ

 

En este primer tutorial vamos a conocer la estructura general del firmware del eZ430-Chronos y a añadir nuestra primera funcion: un calendario mejorado.

 

Entorno de desarrollo

Utilizaremos el Code Composer Studio v4.0 como entorno de desarrollo.

Podemos usar la version limitada descargable gratuitamente de la pagina de Texas Instruments o alguna de las versiones de pago (Microcontroller o Platinum).

La instalacion y uso del CCS no es es objeto de este tutorial.

 

Instalaremos tambien el codigo fuente del firmware incluido en el reloj descargandolo o utilizando el cdrom incluido con el reloj.

 

Una vez tengamos todo el entorno de desarrollo instalado, arrancamos el CCS y procedemos a importar un proyecto existente ( File -> Import -> CCS -> Existing CCS/CCE Eclipse Project )

 

Elegimos como path el directorio donde hemos instalado el codigo fuente.

Durante la instalacion, se habra instalado la version del firmware para el CCS y para el IAR. Asegurate de elegir la version para CCS.

Tambien se incluyen dos versiones del firmware: Una que ofrece la funcionalidad de un reloj deportivo (“CCS\Sport Watch”) y otra que realiza logueo continuo de los sensores (“CSS\Data logger”).

Si se realiza la instalacion por defecto, el path sera C:\Archivos de programa\Texas Instruments\eZ430-Chronos\Software Projects\Chronos Watch\CCS\Sports Watch

Nos aseguramos de activar la casilla “Copy projects into workspace”.

 

Terminada la importacion, debemos tener nuestro proyecto en la vista de proyectos

 

 

 

Elegimos el perfil activo (868MHz Europa – CSS limited)

 

Project -> Build Project y confirmamos en la consola que no se ha producido ningun error.

Estructura general ->

– main.c: bucle principal.
– logic\*: Contiene el codigo que gestiona las logicas de las distintas funciones del reloj. Ejemplos:
logic\menu.c: menus
logic\clock.c: reloj
logic\stopwatch.c: cronometro
logic\date.c: fecha
logic\acceleration.c: acelerador

– simpliciti\*: Pila SIMPLICITI
– bluerobin\*: pila bluerobin. (es un binario y los .h. No hay fuente)
– driver\*: control de los distintos perifericos hardware. <- si usamos la version lite, no se compilan.

Echar un vistazo a main.c, menu.c y menu.h

 

menu.h nos fijamos en esto:

 

Esta estructura contiene la informacion relativa a los menus que permiten acceder a las funciones del reloj. La estructura sirve para definir indistintamente a los menus del LCD superior o del inferior.

sx_function es la funcion que se ejecuta cuando se pulsa el boton derecho y MX_funciontion la que se ejecuta al mantener apretado el boton derecho unos segundos.

Display_function apunta al metodo que se invoca para pintar el menu en el LCD. El parametro “line” de las 3 funciones anteriores sirve para indicar el LCD donde se renderizara la funcion.

next es un puntero al menu que se saltara la aplicacion cuando se apriete el boton izquierdo una sola vez.

 

Un vistazo a menu.c

Observamos como se declaran e inicializan los distintos menus, tanto para el LCD (LINE1) superior como el inferior (LINE2).

Por ejemplo, esta es la declaracion de los menus del LCD superior:

Notese como se encadena cada menu al siguiente y el ultimo al primero.

Vamos a centrarnos en la funcionalidad del calendario cuya estructura del menu es la siguiente:

Echaremos un vistazo a display_date() , que es la funcion que se ejecuta cuando el reloj debe debe mostrar la fecha.

El primer argumento, line indica en que LCD se renderizara

que es el metodo que se ejecuta al mantener pulsado el boton izquierdo durante un tiempo

CONTINUARA…