<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_class_timer" xml:lang="en-US">
<title>Timer&lt; max_tasks, time_func &gt; Class Template Reference</title>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary></indexterm>
<para>
<computeroutput>#include &lt;xtimer.h&gt;</computeroutput>
</para>
<simplesect>
    <title>Classes    </title>
        <itemizedlist>
            <listitem><para>struct <link linkend="_struct_timer_1_1task">task</link></para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Public Types    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">typedef</link> <link linkend="_class_timer">bool</link>(* <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link>) (<link linkend="_class_timer">void</link> *opaque)</para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Public Member Functions    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_timer_1a0c3e9b1ed284d21766d8c33889d6a5fb">at</link> (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> <link linkend="_class_timer">time</link>, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> <link linkend="_class_timer">h</link>, <link linkend="_class_timer">void</link> *opaque=<link linkend="_class_timer">NULL</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_timer_1a94253fdcb39fb01d960b038b0dfc9353">every</link> (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> <link linkend="_class_timer">interval</link>, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> <link linkend="_class_timer">h</link>, <link linkend="_class_timer">void</link> *opaque=<link linkend="_class_timer">NULL</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">bool</link> <link linkend="_class_timer_1ab12cbd174033a18b89a4d1c81d064281">in</link> (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> <link linkend="_class_timer">delay</link>, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> <link linkend="_class_timer">h</link>, <link linkend="_class_timer">void</link> *opaque=<link linkend="_class_timer">NULL</link>)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_timer_1a522d59f128a42a01db7541fd431871a1">tick</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_timer_1af5e9aba9bbbf4d66ef23530fa4ee7c1b">tick</link> (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> <link linkend="_class_timer">t</link>)</para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Private Member Functions    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> * <link linkend="_class_timer_1ad8704f3ed3bf5b5b7723b720e0f945ec">add_task</link> (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> start, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> expires, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> <link linkend="_class_timer">h</link>, <link linkend="_class_timer">void</link> *opaque, <link linkend="_class_timer">bool</link> repeat=0)</para>
</listitem>
            <listitem><para><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> * <link linkend="_class_timer_1a1460b5bf28034c1ac0cc00553f989afc">next_task_slot</link> ()</para>
</listitem>
            <listitem><para><link linkend="_class_timer">void</link> <link linkend="_class_timer_1a9e81ec9b221bc5b96c49b7679254b242">remove</link> (<link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> *<link linkend="_struct_timer_1_1task">task</link>)</para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Private Attributes    </title>
        <itemizedlist>
            <listitem><para><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">Timer::task</link> <link linkend="_class_timer_1a4c19977ed6d6717740bd89ea95895bce">tasks</link> [<link linkend="_class_timer">max_tasks</link>]</para>
</listitem>
        </itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>
<simplesect><title>template&lt;size_t max_tasks = TIMER_MAX_TASKS, unsigned long(*)() time_func = millis&gt;<?linebreak?>class Timer&lt; max_tasks, time_func &gt;</title></simplesect>
<para>
Definition at line <link linkend="_xtimer_8h_source_1l00020">20</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
</section>
<section>
<title>Member Typedef Documentation</title>
<anchor xml:id="_class_timer_1a07c2f7b216851b426a38960d092e9875"/><section>
    <title>handler_t</title>
<indexterm><primary>handler_t</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>handler_t</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">typedef</link> <link linkend="_class_timer">bool</link>(* <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::handler_t) (<link linkend="_class_timer">void</link> *opaque)</computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00023">23</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
</section>
</section>
<section>
<title>Member Function Documentation</title>
<anchor xml:id="_class_timer_1ad8704f3ed3bf5b5b7723b720e0f945ec"/><section>
    <title>add_task()</title>
<indexterm><primary>add_task</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>add_task</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> * <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::add_task (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> start, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> expires, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> h, <link linkend="_class_timer">void</link> * opaque, <link linkend="_class_timer">bool</link> repeat = <computeroutput>0</computeroutput>
)<computeroutput>[inline]</computeroutput>, <computeroutput>[private]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00110">110</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00112 &#32;&#32;&#32;&#32;{
00113 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keyword">struct&#32;</emphasis>task&#32;*<emphasis role="keyword">const</emphasis>&#32;<link linkend="_class_timer">slot</link>&#32;=&#32;<link linkend="_class_timer_1a1460b5bf28034c1ac0cc00553f989afc">next_task_slot</link>();
00114 
00115 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<link linkend="_class_timer">slot</link>){
00116 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">NULL</link>;
00117 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00118 
00119 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">slot</link>-&gt;handler&#32;=&#32;<link linkend="_class_timer">h</link>;
00120 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">slot</link>-&gt;opaque&#32;=&#32;opaque;
00121 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">slot</link>-&gt;start&#32;=&#32;start;
00122 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">slot</link>-&gt;expires&#32;=&#32;expires;
00123 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer">slot</link>-&gt;repeat&#32;=&#32;repeat;
00124 
00125 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">slot</link>;
00126 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1a0c3e9b1ed284d21766d8c33889d6a5fb"/><section>
    <title>at()</title>
<indexterm><primary>at</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>at</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">bool</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::at (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> time, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> h, <link linkend="_class_timer">void</link> * opaque = <computeroutput><link linkend="_class_timer">NULL</link></computeroutput>
)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00033">33</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00034 &#32;&#32;&#32;&#32;{
00035 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;now&#32;=&#32;<link linkend="_class_timer">time_func</link>();
00036 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer_1ad8704f3ed3bf5b5b7723b720e0f945ec">add_task</link>(now,&#32;<link linkend="_class_timer">time</link>&#32;-&#32;now,&#32;<link linkend="_class_timer">h</link>,&#32;opaque);
00037 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1a94253fdcb39fb01d960b038b0dfc9353"/><section>
    <title>every()</title>
<indexterm><primary>every</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>every</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">bool</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::every (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> interval, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> h, <link linkend="_class_timer">void</link> * opaque = <computeroutput><link linkend="_class_timer">NULL</link></computeroutput>
)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00041">41</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00042 &#32;&#32;&#32;&#32;{
00043 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer_1ad8704f3ed3bf5b5b7723b720e0f945ec">add_task</link>(<link linkend="_class_timer">time_func</link>(),&#32;<link linkend="_class_timer">interval</link>,&#32;<link linkend="_class_timer">h</link>,&#32;opaque,&#32;<link linkend="_class_timer">interval</link>);
00044 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1ab12cbd174033a18b89a4d1c81d064281"/><section>
    <title>in()</title>
<indexterm><primary>in</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>in</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">bool</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::in (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> delay, <link linkend="_class_timer_1a07c2f7b216851b426a38960d092e9875">handler_t</link> h, <link linkend="_class_timer">void</link> * opaque = <computeroutput><link linkend="_class_timer">NULL</link></computeroutput>
)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00026">26</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00027 &#32;&#32;&#32;&#32;{
00028 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer_1ad8704f3ed3bf5b5b7723b720e0f945ec">add_task</link>(<link linkend="_class_timer">time_func</link>(),&#32;<link linkend="_class_timer">delay</link>,&#32;<link linkend="_class_timer">h</link>,&#32;opaque);
00029 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1a1460b5bf28034c1ac0cc00553f989afc"/><section>
    <title>next_task_slot()</title>
<indexterm><primary>next_task_slot</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>next_task_slot</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> * <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::next_task_slot ( )<computeroutput>[inline]</computeroutput>, <computeroutput>[private]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00097">97</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00098 &#32;&#32;&#32;&#32;{
00099 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<emphasis role="keywordtype">size_t</emphasis>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">max_tasks</link>;&#32;++<link linkend="_class_timer">i</link>)
00100 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00101 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keyword">struct&#32;</emphasis>task&#32;*<emphasis role="keyword">const</emphasis>&#32;<link linkend="_class_timer">slot</link>&#32;=&#32;&amp;<link linkend="_class_timer_1a4c19977ed6d6717740bd89ea95895bce">tasks</link>[<link linkend="_class_timer">i</link>];
00102 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_class_timer">slot</link>-&gt;handler&#32;==&#32;<link linkend="_class_timer">NULL</link>)
00103 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">slot</link>;
00104 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00105 
00106 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<link linkend="_class_timer">NULL</link>;
00107 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1a9e81ec9b221bc5b96c49b7679254b242"/><section>
    <title>remove()</title>
<indexterm><primary>remove</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>remove</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">void</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::remove (<link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">task</link> * task)<computeroutput>[inline]</computeroutput>, <computeroutput>[private]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00087">87</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00088 &#32;&#32;&#32;&#32;{
00089 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;handler&#32;=&#32;<link linkend="_class_timer">NULL</link>;
00090 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;opaque&#32;=&#32;<link linkend="_class_timer">NULL</link>;
00091 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;start&#32;=&#32;0;
00092 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;expires&#32;=&#32;0;
00093 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;repeat&#32;=&#32;0;
00094 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1a522d59f128a42a01db7541fd431871a1"/><section>
    <title>tick()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>tick</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>tick</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">void</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::tick ( )<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00049">49</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00050 &#32;&#32;&#32;&#32;{
00051 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer_1a522d59f128a42a01db7541fd431871a1">tick</link>(<link linkend="_class_timer">time_func</link>());
00052 &#32;&#32;&#32;&#32;}
</programlisting></section>
<anchor xml:id="_class_timer_1af5e9aba9bbbf4d66ef23530fa4ee7c1b"/><section>
    <title>tick()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>tick</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>tick</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">void</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::tick (<link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link> t)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line <link linkend="_xtimer_8h_source_1l00056">56</link> of file <link linkend="_xtimer_8h_source">xtimer.h</link>.</para>
<programlisting linenumbering="unnumbered">00057 &#32;&#32;&#32;&#32;{
00058 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(<emphasis role="keywordtype">size_t</emphasis>&#32;<link linkend="_class_timer">i</link>&#32;=&#32;0;&#32;<link linkend="_class_timer">i</link>&#32;&lt;&#32;<link linkend="_class_timer">max_tasks</link>;&#32;++<link linkend="_class_timer">i</link>)
00059 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00060 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keyword">struct&#32;</emphasis>task&#32;*<emphasis role="keyword">const</emphasis>&#32;task&#32;=&#32;&amp;<link linkend="_class_timer_1a4c19977ed6d6717740bd89ea95895bce">tasks</link>[<link linkend="_class_timer">i</link>];
00061 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;<link linkend="_class_timer">duration</link>&#32;=&#32;<link linkend="_class_timer">t</link>&#32;-&#32;task-&gt;start;
00062 
00063 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(task-&gt;handler&#32;&amp;&amp;&#32;<link linkend="_class_timer">duration</link>&#32;&gt;=&#32;task-&gt;expires)
00064 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;{
00065 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;repeat&#32;=&#32;task-&gt;handler(task-&gt;opaque)&#32;&amp;&amp;&#32;task-&gt;repeat;
00066 
00067 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(task-&gt;repeat)
00068 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;task-&gt;start&#32;=&#32;<link linkend="_class_timer">t</link>;
00069 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
00070 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_class_timer_1a9e81ec9b221bc5b96c49b7679254b242">remove</link>(task);
00071 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}<emphasis role="keywordflow">else</emphasis>{
00072 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00073 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
00074 &#32;&#32;&#32;&#32;}
</programlisting></section>
</section>
<section>
<title>Member Data Documentation</title>
<anchor xml:id="_class_timer_1a4c19977ed6d6717740bd89ea95895bce"/><section>
    <title>tasks</title>
<indexterm><primary>tasks</primary><secondary>Timer&lt; max_tasks, time_func &gt;</secondary></indexterm>
<indexterm><primary>Timer&lt; max_tasks, time_func &gt;</primary><secondary>tasks</secondary></indexterm>
<computeroutput>template&lt;<link linkend="_class_timer">size_t</link> max_tasks = TIMER_MAX_TASKS, <link linkend="_class_timer">unsigned</link> <link linkend="_class_timer">long</link>(*)() time_func = millis&gt; </computeroutput><para><computeroutput><link linkend="_class_timer">struct</link> <link linkend="_struct_timer_1_1task">Timer::task</link> <link linkend="_class_timer">Timer</link>&lt; <link linkend="_class_timer">max_tasks</link>, <link linkend="_class_timer">time_func</link> &gt;::tasks[<link linkend="_class_timer">max_tasks</link>]<computeroutput>[private]</computeroutput></computeroutput></para></section>
<para>
The documentation for this class was generated from the following file:</para>
<link linkend="_xtimer_8h">xtimer.h</link></section>
</section>
