Zaloguj się
Blog na Matlablog
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Problem z zmienną globalną
Forum MATLAB Strona Główna-> MATLAB
Post Wysłany: 17 Maj 2018, Czw 11:52 pm Temat postu: Problem z zmienną globalną Odpowiedz z cytatem
 
AUTOR:
maikeel
Pisze


Dołączył: 20 Sie 2010
Posty: 23


Ogląda profil użytkownika Wyślij prywatną wiadomość
Program nie działa i nie rozumiem dlaczego. Po wciśnięciu 'przycisku 3' wszystko działa (timer działa 10 razy), natomiast po wciśnięciu 'przycisku 4' wyświetla się informacja że zmienna s jest nieznana! - Nie rozumiem dlaczego bo na początku została zdefiniowana jako global. Nie mam koncepcji jak to rozgryźć!?

Kod:

function varargout = program(varargin)
%
PROGRAM MATLAB code for program.fig
%      PROGRAM, by itself, creates a new PROGRAM or raises the existing
%      singleton*.
%
%     
H = PROGRAM returns the handle to a new PROGRAM or the handle to
%      the existing singleton*.
%
%     
PROGRAM('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in PROGRAM.M with the given input arguments.
%
%     
PROGRAM('Property','Value',...) creates a new PROGRAM or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before program_OpeningFcn gets calledAn
%      unrecognized property name or invalid value makes property application
%      stopAll inputs are passed to program_OpeningFcn via varargin.
%
%      *
See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help program

% Last Modified by GUIDE v2.5 01-Jan-2017 00:19:06

% Begin initialization code - DO NOT EDIT
global t
global s

gui_Singleton = 1;
gui_State = struct('
gui_Name',       mfilename, ...
                   '
gui_Singleton',  gui_Singleton, ...
                   '
gui_OpeningFcn', @program_OpeningFcn, ...
                   '
gui_OutputFcn',  @program_OutputFcn, ...
                   '
gui_LayoutFcn',  [] , ...
                   '
gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before program is made visible.
function program_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to program (see VARARGIN)

% Choose default command line output for program
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);

% UIWAIT makes program wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = program_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;




function pushbutton3_Callback(hObject, eventdata, handles)

s = serial('
COM5');
set(s,'
BaudRate',230400);
s.InputBufferSize = 20000;
s.Terminator ='';
fopen(s);
s.Status
s.ReadAsyncMode = '
continuous';

t = timer('
TimerFcn', @(x,y)getSerialDataHandler(s, data), 'Period',  1);
set(t,'
ExecutionMode','fixedRate');
set(t,'
TasksToExecute',10);
start(t);


function pushbutton4_Callback(hObject, eventdata, handles)


t = timer('
TimerFcn', @(x,y)getSerialDataHandler(s, data), 'Period', 1);
set(t,'
ExecutionMode','fixedRate');
set(t,'
TasksToExecute',30);
start(t);


 

Post Wysłany: 20 Maj 2018, Nie 8:49 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
mc2
Może pisać książki


Dołączył: 19 Maj 2009
Posty: 2261


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Na początku każdej funkcji, w której chcesz używać zmiennych globalnych t i s powinieneś wprost to napisać, tzn.:
Kod:
function ...
global
t
global s

https://www.mathworks.com/help/matlab/ref/global.html
 

Post Wysłany: 24 Maj 2018, Czw 9:45 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
dk2591
Początki pisania


Dołączył: 27 Kwi 2018
Posty: 7
Skąd: RzeszĂłw


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Miałem dokładnie ten sam problem



_________________
http://helpik24.pl/
 

Forum MATLAB Strona Główna-> MATLAB
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 47002849
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
trzy dni kondora s01e04 gdzie obejrzeć online?  (22 Czerwca 2018, Pią 6:34 pm)
[s01e04] 3 dni Kondora 1 sezon 4 odcinek online  (22 Czerwca 2018, Pią 6:34 pm)
[s01e04] Trzy dni kondora 1 sezon 4 odcinek online  (22 Czerwca 2018, Pią 6:34 pm)
trzy dni kondora s01e03 gdzie obejrzeć online?  (22 Czerwca 2018, Pią 6:26 pm)
[s01e03] 3 dni Kondora 1 Sezon 3 Odcinek Online  (22 Czerwca 2018, Pią 6:26 pm)
[s01e03] Trzy dni Kondora 1 sezon 3 odcinek online  (22 Czerwca 2018, Pią 6:26 pm)
[s01e02] 3 dni Kondora 1 sezon 2 odcinek online  (22 Czerwca 2018, Pią 6:20 pm)
Trzy dni kondora s01e02 gdzie obejrzeć online?  (22 Czerwca 2018, Pią 6:20 pm)
[s01e02] Trzy dni kondora 1 Sezon 2 Odcinek Online  (22 Czerwca 2018, Pią 6:19 pm)
3 dni Kondora s01e01 gdzie obejrzeć online?  (22 Czerwca 2018, Pią 6:14 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum