2019-05-15 10:57:06 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
< title > Timer Management< / title >
< title > CMSIS-RTOS: Timer Management< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< link href = "cmsis.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< script type = "text/javascript" src = "printComponentTabs.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< script type = "text/javascript" >
$(document).ready(initResizable);
2019-10-18 15:30:02 +01:00
$(window).load(resizeHeight);
< / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/search.js" > < / script >
< script type = "text/javascript" >
$(document).ready(function() { searchBox.OnSelectItem(0); });
2019-05-15 10:57:06 +01:00
< / script >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 46px;" >
< td id = "projectlogo" > < img alt = "Logo" src = "CMSIS_Logo_Final.png" / > < / td >
< td style = "padding-left: 0.5em;" >
< div id = "projectname" > CMSIS-RTOS
2019-10-18 15:30:02 +01:00
  < span id = "projectnumber" > Version 1.03< / span >
2019-05-15 10:57:06 +01:00
< / div >
2019-10-18 15:30:02 +01:00
< div id = "projectbrief" > Real-Time Operating System: API and RTX Reference Implementation.< / div >
2019-05-15 10:57:06 +01:00
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
< div id = "CMSISnav" class = "tabs1" >
< ul class = "tablist" >
< script type = "text/javascript" >
<!--
writeComponentTabs.call(this);
//-->
< / script >
< / ul >
< / div >
2019-10-18 15:30:02 +01:00
<!-- Generated by Doxygen 1.8.6 -->
< script type = "text/javascript" >
var searchBox = new SearchBox("searchBox", "search",false,'Search');
< / script >
2019-05-15 10:57:06 +01:00
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "pages.html" > < span > Usage  and  Description< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Reference< / span > < / a > < / li >
2019-10-18 15:30:02 +01:00
< li >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< img id = "MSearchSelect" src = "search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
< input type = "text" id = "MSearchField" value = "Search" accesskey = "S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
< / span > < span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" > < img id = "MSearchCloseImg" border = "0" src = "search/close.png" alt = "" / > < / a >
< / span >
< / div >
< / li >
2019-05-15 10:57:06 +01:00
< / ul >
< / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
2019-10-18 15:30:02 +01:00
$(document).ready(function(){initNavTree('group__CMSIS__RTOS__TimerMgmt.html','');});
2019-05-15 10:57:06 +01:00
< / script >
< div id = "doc-content" >
2019-10-18 15:30:02 +01:00
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(0)" > < span class = "SelectionMark" >   < / span > All< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(1)" > < span class = "SelectionMark" >   < / span > Data Structures< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(2)" > < span class = "SelectionMark" >   < / span > Files< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(3)" > < span class = "SelectionMark" >   < / span > Functions< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(4)" > < span class = "SelectionMark" >   < / span > Variables< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(5)" > < span class = "SelectionMark" >   < / span > Typedefs< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(6)" > < span class = "SelectionMark" >   < / span > Enumerations< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(7)" > < span class = "SelectionMark" >   < / span > Enumerator< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(8)" > < span class = "SelectionMark" >   < / span > Macros< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(9)" > < span class = "SelectionMark" >   < / span > Groups< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(10)" > < span class = "SelectionMark" >   < / span > Pages< / a > < / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
2019-05-15 10:57:06 +01:00
< div class = "header" >
< div class = "summary" >
< a href = "#define-members" > Macros< / a > |
< a href = "#enum-members" > Enumerations< / a > |
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" >
2019-10-18 15:30:02 +01:00
< div class = "title" > Timer Management< div class = "ingroups" > < a class = "el" href = "group__CMSIS__RTOS.html" > CMSIS-RTOS API< / a > < / div > < / div > < / div >
< / div > <!-- header -->
2019-05-15 10:57:06 +01:00
< div class = "contents" >
< p > Create and control timer and timer callback functions.
< a href = "#details" > More...< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "define-members" > < / a >
Macros< / h2 > < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:ga1c720627e08d1cc1afcad44e799ed492" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (name, function)< / td > < / tr >
< tr class = "memdesc:ga1c720627e08d1cc1afcad44e799ed492" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Define a Timer object. < a href = "#ga1c720627e08d1cc1afcad44e799ed492" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:ga1c720627e08d1cc1afcad44e799ed492" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:ga1b8d670eaf964b2910fa06885e650678" > < td class = "memItemLeft" align = "right" valign = "top" > #define  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (name)      & os_timer_def_##name< / td > < / tr >
< tr class = "memdesc:ga1b8d670eaf964b2910fa06885e650678" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Access a Timer definition. < a href = "#ga1b8d670eaf964b2910fa06885e650678" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:ga1b8d670eaf964b2910fa06885e650678" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "enum-members" > < / a >
Enumerations< / h2 > < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:gadac860eb9e1b4b0619271e6595ed83d9" > < td class = "memItemLeft" align = "right" valign = "top" > enum   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9" > os_timer_type< / a > { < br / >
    < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951" > osTimerOnce< / a > = 0,
2019-05-15 10:57:06 +01:00
< br / >
2019-10-18 15:30:02 +01:00
    < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > = 1
2019-05-15 10:57:06 +01:00
< br / >
}< / td > < / tr >
< tr class = "separator:gadac860eb9e1b4b0619271e6595ed83d9" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:gaedd312bfdca04e0b8162b666e09a1ae6" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (const < a class = "el" href = "cmsis__os_8h.html#structosTimerDef__t" > osTimerDef_t< / a > *timer_def, < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9" > os_timer_type< / a > type, void *argument)< / td > < / tr >
< tr class = "memdesc:gaedd312bfdca04e0b8162b666e09a1ae6" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Create a timer. < a href = "#gaedd312bfdca04e0b8162b666e09a1ae6" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:gaedd312bfdca04e0b8162b666e09a1ae6" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:ga27a797a401b068e2644d1125f22a07ca" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (< a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > timer_id, uint32_t millisec)< / td > < / tr >
< tr class = "memdesc:ga27a797a401b068e2644d1125f22a07ca" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Start or restart a timer. < a href = "#ga27a797a401b068e2644d1125f22a07ca" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:ga27a797a401b068e2644d1125f22a07ca" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:ga58f36b121a812936435cacc6e1e0e091" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091" > osTimerStop< / a > (< a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > timer_id)< / td > < / tr >
< tr class = "memdesc:ga58f36b121a812936435cacc6e1e0e091" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Stop the timer. < a href = "#ga58f36b121a812936435cacc6e1e0e091" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:ga58f36b121a812936435cacc6e1e0e091" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr class = "memitem:ga746b8043d906849bd65e3900fcb483cf" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf" > osTimerDelete< / a > (< a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > timer_id)< / td > < / tr >
< tr class = "memdesc:ga746b8043d906849bd65e3900fcb483cf" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Delete a timer that was created by < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > . < a href = "#ga746b8043d906849bd65e3900fcb483cf" > More...< / a > < br / > < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr class = "separator:ga746b8043d906849bd65e3900fcb483cf" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Description< / h2 >
2019-10-18 15:30:02 +01:00
< p > In addition to the < a class = "el" href = "group__CMSIS__RTOS__Wait.html" > Generic Wait Functions< / a > CMSIS-RTOS also supports virtual timer objects. These timer objects can trigger the execution of a function (not threads). When a timer expires, a callback function is executed to run associated code with the timer. The timer number is passed as a parameter to the callback function. Each timer can be configured as a one-shot or a periodic timer. A periodic timer repeats its operation until it is < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf" > deleted< / a > or < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091" > stopped< / a > . All timers can be < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > started, restarted< / a > , or < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091" > stopped< / a > .< / p >
2019-05-15 10:57:06 +01:00
< p > Timers are handled in the thread < b > osTimerThread< / b > . Callback functions run under control of this thread and may use other CMSIS-RTOS API calls.< / p >
< p > The figure below shows the behavior of a periodic timer. For one-shot timers, the timer stops after execution of the callback function.< / p >
< div class = "image" >
< img src = "Timer.png" alt = "Timer.png" / >
< div class = "caption" >
Behavior of a Periodic Timer< / div > < / div >
2019-10-18 15:30:02 +01:00
< h2 > Working with Timers < / h2 >
2019-05-15 10:57:06 +01:00
< p > The following steps are required to use a timer:< / p >
< ol type = "1" >
2019-10-18 15:30:02 +01:00
< li > Define the timers: < div class = "fragment" > < div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (one_shot, start_machine); < span class = "comment" > // when the timer expires, the function start_machine is called< / span > < / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (periodic, toggle_power); < span class = "comment" > // when the timer expires, the function toggle_power is called< / span > < / div >
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > one_shot_id, periodic_id;< / div >
2019-05-15 10:57:06 +01:00
< / div > <!-- fragment --> < / li >
2019-10-18 15:30:02 +01:00
< li > Instantiate and start the timers in an RTOS thread: < div class = "fragment" > < div class = "line" > one_shot_id = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (one_shot), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951" > osTimerOnce< / a > , (< span class = "keywordtype" > void< / span > *)0); < span class = "comment" > // creates a one-shot timer;< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "comment" > // (void*)0 is passed as an argument to the callback function< / span > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > periodic_id = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (periodic), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > , (< span class = "keywordtype" > void< / span > *)5); < span class = "comment" > // creates a periodic timer;< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "comment" > // (void*)5 is passed as an argument to the callback function< / span > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (one_shot_id, 500);< / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (periodic, 1500);< / div >
2019-05-15 10:57:06 +01:00
< / div > <!-- fragment --> < / li >
< / ol >
< h2 class = "groupheader" > Macro Definition Documentation< / h2 >
< a class = "anchor" id = "ga1b8d670eaf964b2910fa06885e650678" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define osTimer< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > name< / td > < td > )< / td >
< td >       & os_timer_def_##name< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2019-10-18 15:30:02 +01:00
< p > Access to the timer definition for the function < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > .< / p >
2019-05-15 10:57:06 +01:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > name< / td > < td > name of the timer object. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > CAN BE CHANGED: The parameter to < b > osTimer< / b > shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. < / dd > < / dl >
< / div >
< / div >
< a class = "anchor" id = "ga1c720627e08d1cc1afcad44e799ed492" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define osTimerDef< / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > name, < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > function  < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Define the attributes of a timer.< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > name< / td > < td > name of the timer object. < / td > < / tr >
< tr > < td class = "paramname" > function< / td > < td > name of the timer call back function. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > CAN BE CHANGED: The parameter to < b > osTimerDef< / b > shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. < / dd > < / dl >
< / div >
< / div >
< h2 class = "groupheader" > Enumeration Type Documentation< / h2 >
< a class = "anchor" id = "gadac860eb9e1b4b0619271e6595ed83d9" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2019-10-18 15:30:02 +01:00
< td class = "memname" > enum < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9" > os_timer_type< / a > < / td >
2019-05-15 10:57:06 +01:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2019-10-18 15:30:02 +01:00
< dl class = "section note" > < dt > Note< / dt > < dd > MUST REMAIN UNCHANGED: < b > os_timer_type< / b > shall be consistent in every CMSIS-RTOS. The < a class = "el" href = "cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9" > os_timer_type< / a > specifies the a repeating (periodic) or one-shot timer for the function < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > . < / dd > < / dl >
< table class = "fieldtable" >
< tr > < th colspan = "2" > Enumerator< / th > < / tr > < tr > < td class = "fieldname" > < em > < a class = "anchor" id = "gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951" > < / a > osTimerOnce< / em >   < / td > < td class = "fielddoc" >
2019-05-15 10:57:06 +01:00
< p > one-shot timer < / p >
< / td > < / tr >
2019-10-18 15:30:02 +01:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > < / a > osTimerPeriodic< / em >   < / td > < td class = "fielddoc" >
2019-05-15 10:57:06 +01:00
< p > repeating timer < / p >
< / td > < / tr >
< / table >
< / div >
< / div >
< h2 class = "groupheader" > Function Documentation< / h2 >
< a class = "anchor" id = "gaedd312bfdca04e0b8162b666e09a1ae6" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > osTimerCreate < / td >
< td > (< / td >
2019-10-18 15:30:02 +01:00
< td class = "paramtype" > const < a class = "el" href = "cmsis__os_8h.html#structosTimerDef__t" > osTimerDef_t< / a > *  < / td >
2019-05-15 10:57:06 +01:00
< td class = "paramname" > < em > timer_def< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2019-10-18 15:30:02 +01:00
< td class = "paramtype" > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9" > os_timer_type< / a >   < / td >
2019-05-15 10:57:06 +01:00
< td class = "paramname" > < em > type< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > argument< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-10-18 15:30:02 +01:00
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > timer_def< / td > < td > timer object referenced with < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > . < / td > < / tr >
2019-05-15 10:57:06 +01:00
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > type< / td > < td > osTimerOnce for one-shot or osTimerPeriodic for periodic behavior. < / td > < / tr >
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > argument< / td > < td > argument to the timer call back function. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > timer ID for reference by other functions or NULL in case of error. < / dd > < / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > MUST REMAIN UNCHANGED: < b > osTimerCreate< / b > shall be consistent in every CMSIS-RTOS.< / dd > < / dl >
2019-10-18 15:30:02 +01:00
< p > Create a one-shot or periodic timer and associate it with a callback function argument. The timer is in stopped until it is started with < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > .< / p >
< dl class = "section note" > < dt > Note< / dt > < dd > Cannot be called from < a class = "el" href = "functionOverview.html#CMSIS_RTOS_ISR_Calls" > Interrupt Service Routines< / a > .< / dd > < / dl >
2019-05-15 10:57:06 +01:00
< p > < b > Code Example< / b > < / p >
< div class = "fragment" > < div class = "line" > < span class = "preprocessor" > #include " < a class = "code" href = "cmsis__os_8h.html" > cmsis_os.h< / a > " < / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > Timer1_Callback (< span class = "keywordtype" > void< / span > < span class = "keyword" > const< / span > *arg); < span class = "comment" > // prototypes for timer callback function< / span > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > Timer2_Callback (< span class = "keywordtype" > void< / span > < span class = "keyword" > const< / span > *arg); < / div >
< div class = "line" > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (Timer1, Timer1_Callback); < span class = "comment" > // define timers< / span > < / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (Timer2, Timer2_Callback);< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > uint32_t exec1; < span class = "comment" > // argument for the timer call back function< / span > < / div >
< div class = "line" > uint32_t exec2; < span class = "comment" > // argument for the timer call back function< / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > TimerCreate_example (< span class = "keywordtype" > void< / span > ) {< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > id1; < span class = "comment" > // timer id< / span > < / div >
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > id2; < span class = "comment" > // timer id< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Create one-shoot timer< / span > < / div >
< div class = "line" > exec1 = 1;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > id1 = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (Timer1), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951" > osTimerOnce< / a > , & exec1);< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "keywordflow" > if< / span > (id1 != NULL) {< / div >
< div class = "line" > < span class = "comment" > // One-shoot timer created< / span > < / div >
< div class = "line" > }< / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Create periodic timer< / span > < / div >
< div class = "line" > exec2 = 2;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > id2 = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (Timer2), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > , & exec2);< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "keywordflow" > if< / span > (id2 != NULL) {< / div >
< div class = "line" > < span class = "comment" > // Periodic timer created< / span > < / div >
< div class = "line" > }< / div >
< div class = "line" > :< / div >
< div class = "line" > }< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "ga746b8043d906849bd65e3900fcb483cf" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2019-10-18 15:30:02 +01:00
< td class = "memname" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > osTimerDelete < / td >
2019-05-15 10:57:06 +01:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a >   < / td >
< td class = "paramname" > < em > timer_id< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-10-18 15:30:02 +01:00
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > timer_id< / td > < td > timer ID obtained by < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > . < / td > < / tr >
2019-05-15 10:57:06 +01:00
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > status code that indicates the execution status of the function. < / dd > < / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > MUST REMAIN UNCHANGED: < b > osTimerDelete< / b > shall be consistent in every CMSIS-RTOS.< / dd > < / dl >
< p > Delete the timer object.< / p >
2019-10-18 15:30:02 +01:00
< p > < b > < a class = "el" href = "group__CMSIS__RTOS__Status.html" > Status and Error Codes< / a > < / b > < br / >
2019-05-15 10:57:06 +01:00
< / p >
< ul >
< li > < em > osOK:< / em > the specified timer has been deleted.< / li >
2019-10-18 15:30:02 +01:00
< li > < em > osErrorISR:< / em > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf" > osTimerDelete< / a > cannot be called from interrupt service routines.< / li >
2019-05-15 10:57:06 +01:00
< li > < em > osErrorParameter:< / em > < em > timer_id< / em > is incorrect.< / li >
< / ul >
2019-10-18 15:30:02 +01:00
< dl class = "section note" > < dt > Note< / dt > < dd > Cannot be called from < a class = "el" href = "functionOverview.html#CMSIS_RTOS_ISR_Calls" > Interrupt Service Routines< / a > .< / dd > < / dl >
2019-05-15 10:57:06 +01:00
< p > < b > Code Example< / b > < / p >
< div class = "fragment" > < div class = "line" > < span class = "preprocessor" > #include " < a class = "code" href = "cmsis__os_8h.html" > cmsis_os.h< / a > " < / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > Timer_Callback (< span class = "keywordtype" > void< / span > < span class = "keyword" > const< / span > *arg); < span class = "comment" > // prototype for timer callback function< / span > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (Timer, Timer_Callback); < span class = "comment" > // define timer< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > TimerDelete_example (< span class = "keywordtype" > void< / span > ) {< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > id; < span class = "comment" > // timer id< / span > < / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > status; < span class = "comment" > // function return status < / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Create periodic timer< / span > < / div >
< div class = "line" > exec = 1;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < span class = "keywordtype" > id< / span > = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (Timer2), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > , NULL);< / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (< span class = "keywordtype" > id< / span > , 1000UL); < span class = "comment" > // start timer< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > :< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > status = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf" > osTimerDelete< / a > (< span class = "keywordtype" > id< / span > ); < span class = "comment" > // stop and delete timer< / span > < / div >
< div class = "line" > < span class = "keywordflow" > if< / span > (status != < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f" > osOK< / a > ) {< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "comment" > // Timer could not be deleted< / span > < / div >
< div class = "line" > } < / div >
< div class = "line" > :< / div >
< div class = "line" > }< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "ga27a797a401b068e2644d1125f22a07ca" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2019-10-18 15:30:02 +01:00
< td class = "memname" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > osTimerStart < / td >
2019-05-15 10:57:06 +01:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a >   < / td >
< td class = "paramname" > < em > timer_id< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint32_t  < / td >
< td class = "paramname" > < em > millisec< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-10-18 15:30:02 +01:00
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > timer_id< / td > < td > timer ID obtained by < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > . < / td > < / tr >
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > millisec< / td > < td > < a class = "el" href = "functionOverview.html#CMSIS_RTOS_TimeOutValue" > time delay< / a > value of the timer. < / td > < / tr >
2019-05-15 10:57:06 +01:00
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > status code that indicates the execution status of the function. < / dd > < / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > MUST REMAIN UNCHANGED: < b > osTimerStart< / b > shall be consistent in every CMSIS-RTOS.< / dd > < / dl >
< p > Start or restart the timer.< / p >
2019-10-18 15:30:02 +01:00
< p > < b > < a class = "el" href = "group__CMSIS__RTOS__Status.html" > Status and Error Codes< / a > < / b > < br / >
2019-05-15 10:57:06 +01:00
< / p >
< ul >
< li > < em > osOK:< / em > the specified timer has been started or restarted.< / li >
2019-10-18 15:30:02 +01:00
< li > < em > osErrorISR:< / em > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > cannot be called from interrupt service routines.< / li >
2019-05-15 10:57:06 +01:00
< li > < em > osErrorParameter:< / em > < em > timer_id< / em > is incorrect.< / li >
< / ul >
2019-10-18 15:30:02 +01:00
< dl class = "section note" > < dt > Note< / dt > < dd > Cannot be called from < a class = "el" href = "functionOverview.html#CMSIS_RTOS_ISR_Calls" > Interrupt Service Routines< / a > .< / dd > < / dl >
2019-05-15 10:57:06 +01:00
< p > < b > Code Example< / b > < / p >
< div class = "fragment" > < div class = "line" > < span class = "preprocessor" > #include " < a class = "code" href = "cmsis__os_8h.html" > cmsis_os.h< / a > " < / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > Time_Callback (< span class = "keywordtype" > void< / span > < span class = "keyword" > const< / span > *arg) { < span class = "comment" > // timer callback function< / span > < / div >
< div class = "line" > < span class = "comment" > // arg contains & exec< / span > < / div >
< div class = "line" > < span class = "comment" > // called every second after osTimerStart< / span > < / div >
< div class = "line" > } < / div >
< div class = "line" > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (Timer, Time_Callback); < span class = "comment" > // define timer< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > uint32_t exec; < span class = "comment" > // argument for the timer call back function< / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > TimerStart_example (< span class = "keywordtype" > void< / span > ) {< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > id; < span class = "comment" > // timer id< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > uint32_t timerDelay; < span class = "comment" > // timer value< / span > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > status; < span class = "comment" > // function return status< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Create periodic timer< / span > < / div >
< div class = "line" > exec = 1;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < span class = "keywordtype" > id< / span > = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (Timer), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > , & exec);< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "keywordflow" > if< / span > (< span class = "keywordtype" > id< / span > ) {< / div >
< div class = "line" > timerDelay = 1000;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > status = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (< span class = "keywordtype" > id< / span > , timerDelay); < span class = "comment" > // start timer< / span > < / div >
< div class = "line" > < span class = "keywordflow" > if< / span > (status != < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f" > osOK< / a > ) {< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "comment" > // Timer could not be started< / span > < / div >
< div class = "line" > } < / div >
< div class = "line" > }< / div >
< div class = "line" > :< / div >
< div class = "line" > }< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a class = "anchor" id = "ga58f36b121a812936435cacc6e1e0e091" > < / a >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2019-10-18 15:30:02 +01:00
< td class = "memname" > < a class = "el" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > osTimerStop < / td >
2019-05-15 10:57:06 +01:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a >   < / td >
< td class = "paramname" > < em > timer_id< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-10-18 15:30:02 +01:00
< tr > < td class = "paramdir" > [in]< / td > < td class = "paramname" > timer_id< / td > < td > timer ID obtained by < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > . < / td > < / tr >
2019-05-15 10:57:06 +01:00
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > status code that indicates the execution status of the function. < / dd > < / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > MUST REMAIN UNCHANGED: < b > osTimerStop< / b > shall be consistent in every CMSIS-RTOS.< / dd > < / dl >
< p > Stop the timer.< / p >
2019-10-18 15:30:02 +01:00
< p > < b > < a class = "el" href = "group__CMSIS__RTOS__Status.html" > Status and Error Codes< / a > < / b > < br / >
2019-05-15 10:57:06 +01:00
< / p >
< ul >
< li > < em > osOK:< / em > the specified timer has been stopped.< / li >
2019-10-18 15:30:02 +01:00
< li > < em > osErrorISR:< / em > < a class = "el" href = "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091" > osTimerStop< / a > cannot be called from interrupt service routines.< / li >
2019-05-15 10:57:06 +01:00
< li > < em > osErrorParameter:< / em > < em > timer_id< / em > is incorrect.< / li >
< li > < em > osErrorResource:< / em > the timer is not started.< / li >
< / ul >
2019-10-18 15:30:02 +01:00
< dl class = "section note" > < dt > Note< / dt > < dd > Cannot be called from < a class = "el" href = "functionOverview.html#CMSIS_RTOS_ISR_Calls" > Interrupt Service Routines< / a > .< / dd > < / dl >
2019-05-15 10:57:06 +01:00
< p > < b > Code Example< / b > < / p >
< div class = "fragment" > < div class = "line" > < span class = "preprocessor" > #include " < a class = "code" href = "cmsis__os_8h.html" > cmsis_os.h< / a > " < / span > < / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > Timer_Callback (< span class = "keywordtype" > void< / span > < span class = "keyword" > const< / span > *arg); < span class = "comment" > // prototype for timer callback function< / span > < / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492" > osTimerDef< / a > (Timer, Timer_Callback); < span class = "comment" > // define timer< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "keywordtype" > void< / span > TimerStop_example (< span class = "keywordtype" > void< / span > ) {< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7" > osTimerId< / a > id; < span class = "comment" > // timer id< / span > < / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e" > osStatus< / a > status; < span class = "comment" > // function return status< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Create periodic timer< / span > < / div >
< div class = "line" > exec = 1;< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < span class = "keywordtype" > id< / span > = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6" > osTimerCreate< / a > (< a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678" > osTimer< / a > (Timer2), < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788" > osTimerPeriodic< / a > , NULL);< / div >
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (< span class = "keywordtype" > id< / span > , 1000); < span class = "comment" > // start timer< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > :< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > status = < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091" > osTimerStop< / a > (< span class = "keywordtype" > id< / span > ); < span class = "comment" > // stop timer< / span > < / div >
< div class = "line" > < span class = "keywordflow" > if< / span > (status != < a class = "code" href = "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f" > osOK< / a > ) {< / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > < span class = "comment" > // Timer could not be stopped< / span > < / div >
< div class = "line" > } < / div >
< div class = "line" > :< / div >
2019-10-18 15:30:02 +01:00
< div class = "line" > < a class = "code" href = "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca" > osTimerStart< / a > (< span class = "keywordtype" > id< / span > , 1000); < span class = "comment" > // start timer again< / span > < / div >
2019-05-15 10:57:06 +01:00
< div class = "line" > :< / div >
< div class = "line" > }< / div >
< / div > <!-- fragment -->
< / div >
< / div >
< / div > <!-- contents -->
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
2019-10-18 15:30:02 +01:00
< li class = "footer" > Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
2019-05-15 10:57:06 +01:00
<!--
< a href = "http://www.doxygen.org/index.html" >
2019-10-18 15:30:02 +01:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.8.6
2019-05-15 10:57:06 +01:00
-->
< / li >
< / ul >
< / div >
< / body >
< / html >