Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/01/2013 #1


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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.