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 46779571
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Queen Sugar {S03E06} online napisy/lektor PL 3x06 CDA  (19 Czerwca 2018, Wto 9:11 am)
Trzy dni Kondora (Condor) {S01E04} online napisy PL CDA  (19 Czerwca 2018, Wto 9:09 am)
Code Black {S03E10} online napisy/lektor PL 3x10 CDA/Zalukaj  (19 Czerwca 2018, Wto 9:07 am)
Younger {S05E04} online napisy PL 5x04 CDA/Zalukaj  (19 Czerwca 2018, Wto 9:05 am)
Yellowstone {S01E02} online napisy/lektor PL 1x02 CDA  (19 Czerwca 2018, Wto 9:03 am)
The Bold Type (Dziewczyny nad wyraz) S02E04 online napisy PL  (19 Czerwca 2018, Wto 8:57 am)
Ocaleni (Salvation) [S02E01] online napisy PL 2x01 CDA  (19 Czerwca 2018, Wto 8:55 am)
Elementary {S06E09} online napisy/lektor PL 6x09 CDA/Zalukaj  (19 Czerwca 2018, Wto 8:42 am)
Sledczy do pary {S02E14} online napisy/lektor PL 2x14 CDA  (19 Czerwca 2018, Wto 8:36 am)
Pose {S01E04} online napisy/lektor PL 1x04 CDA/Zalukaj  (19 Czerwca 2018, Wto 8:35 am)
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