Comunicación serie PC con MSP430G2553 utilizando MATLAB

Hola a todos.
He hecho y cargado un programa en mi microcontrolador MSP430G2553 y funciona bien (hace lo que quiero). El programa tiene 2 funciones:
1) Saca una señal PWM por el pin P1.6 que sea regulable en periodo y en tiempo que está a nivel alto.
2) Convierto la tensión de una pila, que estará conectada al pin P1.5, a su valor digital y lo mando al ordenador cada 2 segundos aproximadamente.

Lo he probado con el hyperterminal para ver si le llegan los valores al ordenador y va perfectamente. El hyperterminal lo configuré igual que tengo configurado el programa que cargué en el micro (9600 baudios, 8 bits de datos, sin paridad, sin control de flujo y un bit de parada).

Ahora quiero guardar los valores que va mandando el micro al ordenador,mediante comunicacion serie, en una variable o fichero. Tengo que utilizar Matlab y he hecho el siguiente programa:
Código:
clear all;
close all;
clc;

MSP=serial('COM5');
set(MSP,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(MSP,'StopBits',1); % se configura bit de parada a uno
set(MSP,'DataBits',8); % se configura que el dato es de 8 bits, debe estar entre 5 y 8
set(MSP,'Parity','none'); % se configura sin paridad

fopen(MSP);
out = fread(MSP,1,'uint16')'
tension = out.*(3.5/1024)'  %En este vector guardo el valor de tensión analógico
fclose(MSP);
delete(MSP);
clear MSP;
Hasta ahora sólo soy capaz de almacenar un valor en out.
La idea es que el micro vaya mandando la tensión de la pila al ordenador hasta que la pila deje de funcionar, esto puede durar horas (del orden de 5 o 6) y durante todo ese tiempo quiero ir almacenando el valor de tensión en la variable out o en un fichero.
Ahora mismo, como está hecho el programa en Matlab, pongo el microcontrolador a funcionar y sólo me guarda en out un valor (no me los va mandando y almacenando) que es el último que manda el micro al ordenador.
¿Hay alguna forma en matlab de controlar el tiempo o que vaya guardando valores en out mientras esté recibiendo datos por el puerto serie?


Un saludo y muchas gracias, estoy perdido con matlab
 
Atrás
Arriba