Hi!
Nach gefühlten 100 Versuchen habe ich einen Realtimeplot mit Matlab hinbekommen:
Screencapturevid (meine Mega32 simuliert eine verrauschte Sinuskurve)
http://www.villalachouette.de/willia...+rncontrol.wmv
Skript:
Code:
clc
clear
rmappdata(0,'h');
rmappdata(0,'i');
rmappdata(0,'w');
s = serial('COM5','BaudRate',115200);
fopen(s);
s.BytesAvailableFcnMode = 'terminator';
disp('Ready...')
s.BytesAvailableFcn = @empfangen; 

figure;
y=(0:100);
h=plot (y);

setappdata(0,'h',h); 
setappdata(0,'i',1); 
setappdata(0,'w',0);

Callback (wird immer ausgeführt wenn was empfangen wurde). Dieser Code muss unter dem Dateinamen "empfangen.m" gespeichert werden.
Code:
function empfangen (s, event)
i=getappdata(0,'i');
h=getappdata(0,'h');
w=getappdata(0,'w');
%s=getappdata(0,'s');
try
    w(i)=str2double(fscanf(s));
catch
    disp('error reading from serial...');
    fclose(s)
end
i=i+1    ;
setappdata (0,'i',i);
setappdata (0,'w',w);
try %ist die Figure geshclossen worden...
    %i ist immer einen größer als länge von w
    if i > 1000
        set(h, 'ydata',w(i-1000:i-1)) 
    else
        set(h, 'ydata',w)
    end
    ylim([-1.5 1.5]); %yachsenlimit einstellen
    drawnow;
catch
    fclose(s) %...dann wird serialport auch geschlossen.
    disp('...something went wrong or figure was closed.....')
    assignin('base', 'w', w) %variable soll auch im workspace verfügbar sein
end
end
Vielleicht hilft das ja dem ein oder anderen... Mal sehen was ich damit noch anfangen kann.