- write the code all on one line. MATLAB checks for interrupts at the beginning of each line of code, so if you write it all on one line then there will be no opportunity to interrupt
- write the code entirely in terms of built-in functions. You might have prevented interrupts by writing all on one line, but if what you are calling is MATLAB code that was written on multiple lines then MATLAB will be checking for interrupts at the beginning of those lines.
- do not call pause() or uifigure() or figure() or uiwait() or waitfor() or drawnow()
Configure a callback in App Designer to be non-interruptable
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gavin
el 17 de Jul. de 2025
Comentada: Walter Roberson
el 4 de Nov. de 2025 a las 23:17
I'm using USB connected Arduino device and have the following line:
configureCallback(app.PicoCom,"terminator",@app.PicoInput);
The function app.PicoInput does it's job, but I would like it to complete before going back to the main program. If a function has a component that calls it then the function will be the "callback area" of the app and the component has callback execution control. Since this function is called by an interrupt and is set up by startupFcn(app) it doesn't have a component. How can I make it non-interruptable without messing with flags and mutex?
0 comentarios
Respuesta aceptada
Walter Roberson
el 18 de Jul. de 2025
The secrets to making a function uninterruptible is:
5 comentarios
Walter Roberson
el 4 de Nov. de 2025 a las 23:17
function InitInBuffer(app)
% Clean out InBuffer reset pointers
app.InBuffer = zeros(40, 2); % Circular Array init
You are not returning app from the function, and app is not a global variable or a shared variable. All changes to app will be lost when the funtion returns.
Más respuestas (0)
Ver también
Categorías
Más información sobre Dialog Boxes en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!