The part in question is under %READS DATA, i'm trying to run the accelerometer, UNLESS another pushbutton is pressed, which should make a == 1
Breaking a loop GUI?
1 次查看(过去 30 天)
显示 更早的评论
Reading in accelerometer data in a GUI code. I'm trying to break the loop while reading by using the following code...
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = getappdata(handles.text11, 'text11');
%COMPORT
comPort = '/dev/tty.usbmodemfd121';
%READS SERIAL
[accelerometer.s,serialFlag] = setupSerial(comPort);
calCo = calibrate(accelerometer.s);
%READS DATA
while (a == 0)
if (a == 1)
closeSerial
end
[gx gy gz] = readAcc(accelerometer,calCo);
cla;
r = sqrt((gx^2)+(gy^2)+(gz^2));
r
end
guidata(hObject, handles);
My problem is that the data keeps reading even when (a == 1), which is activated from a separate pushbutton. I've already tested the outputs of both each pushbuttons and they do read 0 and 1, but when reading the data, if I press the 1 pushbutton the data will still read.
回答(1 个)
Walter Roberson
2013-2-11
while true
drawnow;
a = getappdata(handles.text11, 'text11');
if a == 0; break; end
...
end
2 个评论
Jan
2013-3-11
@Amed: Neither "oh ok" nor "anything" contains enough information to understand, if this answer has solved your problem or not. If you want help, provide more details instead of bumping the thread without new informations.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!