說明
使用 timer
對象以排定執行一次或多次 MATLAB? 命令。如果您排定計時器多次執行命令,可以定義每次執行之間的時間間隔以及如何處理排隊沖突。
timer
對象使用回調函數執行命令。回調函數在某些事件中執行代碼。對于 timer
對象,您可以將回調函數指定為函數句柄或字符串。如果回調函數是字符串,MATLAB 將以可執行代碼形式對其求值。當計時器啟動 (StartFcn
)、執行 (TimerFcn
)、停止 (StopFcn
) 或遇到錯誤 (ErrorFcn
) 時,計時器對象支持回調函數。
附注: timer
對象受到您的硬件、操作系統和軟件的限制。應避免對實時應用程序使用計時器對象。
構造
創建一個空的 t
= timertimer
對象,以排定 MATLAB 命令的執行。如果啟動了計時器,但未定義 TimerFcn
,則會出現錯誤。
使用由一個或多個 t
= timer(Name,Value
)Name,Value
對組參數指定的其他選項創建 timer
對象。
MATLAB中使用定時器(timer)基本格式為
t = timer('PropertyName1', PropertyValue1, 'PropertyName2', PropertyValue2,...);
start(t);
最簡單的定時器一般指定以下屬性:
TimerFcn ——指定定時器被觸發時要執行的函數或語句
Period ——指定定時器的觸發時間,單位為秒
ExecutionMode ——指定定時器的觸發方式(觸發一次,還是循環觸發……),該屬性有四個可選值,具體見matlab幫助
TasksToExecute ——指定定時器最多被觸發的次數,該屬性默認為inf,如果希望不停的循環執行,可以不指定該屬性
tag ——一個字符串,可以任意指定,一般用于標志某個特定的定時器,以方便在程序中別的地方查找該定時器
與定時器相關的其他操作
delete(timer) %刪除
disp(timer) %顯示
get(timer) %獲取屬性
isvalid(timer) %檢查有效性
set(timer) %設置屬性
start %開始
startat %開始(可以指定開始時的某些參數)
stop %停止
timerfind %查找某個定時器
timerfindall %也是查找
wait %等待直到定時器被停止
例如寫一個計數器,每過一秒計數加1
x=0
t = timer('TimerFcn','disp(x);x=x+1;', 'Period', 1, 'ExecutionMode', 'fixedSpacing');
start(t);
運行結果如下,如果不想繼續可以在命令窗口輸入delete(h)
利用定時器我們就可以制作數字時鐘
首先創建fig
在fig的open回調函數里寫計時器函數并創建時間顯示函數。
function varargout = szsz(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @szsz_OpeningFcn, ...
'gui_OutputFcn', @szsz_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
function szsz_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
global h
h=timer('TimerFcn',{@disptime,handles},'ExecutionMode','fixedRate','Period',1);
%定時器,定時會觸發 TimerFcn 函數,定時函數(TimerFcn)觸發用戶自定義的函數(disptime函數)
start(h); %開啟定時器
guidata(hObject, handles);
function disptime( , , handles)%顯示系統時間函數
shijian=datestr(now,'yyyy-mm-dd HH:MM:SS');
%生成前日期字符串
set(handles.text2,'string',shijian(1:4));
%%顯示年
set(handles.text8,'string',shijian(6:7));
%%顯示月
set(handles.text10,'string',shijian(9:10));
%%顯示日
set(handles.text12,'string',shijian(12:end));
%%顯示時分秒
function varargout = szsz_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function figure1_CreateFcn(hObject, eventdata, handles)
function figure1_DeleteFcn(hObject, eventdata, handles)
global h
delete(h)%%刪除顯示日期的定時器
-
定時器
+關注
關注
23文章
3250瀏覽量
114907 -
計時器
+關注
關注
1文章
421瀏覽量
32728 -
觸發器
+關注
關注
14文章
2000瀏覽量
61184 -
MATLAB仿真
+關注
關注
4文章
176瀏覽量
19934 -
數字時鐘
+關注
關注
2文章
150瀏覽量
20362
發布評論請先 登錄
相關推薦
評論