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.
Vielleicht hilft das ja dem ein oder anderen... Mal sehen was ich damit noch anfangen kann.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







Zitieren

Lesezeichen