Project

General

Profile

Statistics
| Revision:

root / trunk / docs / libdragonfly / group__time.html @ 1371

History | View | Annotate | Download (12.3 KB)

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>libdragonfly: Time</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
6
</head><body>
7
<!-- Generated by Doxygen 1.5.5 -->
8
<div class="navigation" id="top">
9
  <div class="tabs">
10
    <ul>
11
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
13
      <li><a href="modules.html"><span>Modules</span></a></li>
14
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
15
      <li><a href="files.html"><span>Files</span></a></li>
16
    </ul>
17
  </div>
18
</div>
19
<div class="contents">
20
<h1>Time</h1>Time functions.  
21
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
22
<tr><td></td></tr>
23
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
24
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd271145628da4e0e85e3e2486d117713"></a><!-- doxytag: member="time::SIXTEENTH_SECOND" ref="gd271145628da4e0e85e3e2486d117713" args="" -->
25
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gd271145628da4e0e85e3e2486d117713">SIXTEENTH_SECOND</a>&nbsp;&nbsp;&nbsp;1</td></tr>
26

    
27
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A sixteenth of a second. <br></td></tr>
28
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7bdae984203001070e9abeb3190f844a"></a><!-- doxytag: member="time::EIGTH_SECOND" ref="g7bdae984203001070e9abeb3190f844a" args="" -->
29
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g7bdae984203001070e9abeb3190f844a">EIGTH_SECOND</a>&nbsp;&nbsp;&nbsp;2</td></tr>
30

    
31
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An eighth of a second. <br></td></tr>
32
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0b2a348d9afca1f1182bc2bb2aa6a3d1"></a><!-- doxytag: member="time::QUARTER_SECOND" ref="g0b2a348d9afca1f1182bc2bb2aa6a3d1" args="" -->
33
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g0b2a348d9afca1f1182bc2bb2aa6a3d1">QUARTER_SECOND</a>&nbsp;&nbsp;&nbsp;4</td></tr>
34

    
35
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A quarter of a second. <br></td></tr>
36
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf95f27544f39827250d6bef6fa5fe18e"></a><!-- doxytag: member="time::HALF_SECOND" ref="gf95f27544f39827250d6bef6fa5fe18e" args="" -->
37
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#gf95f27544f39827250d6bef6fa5fe18e">HALF_SECOND</a>&nbsp;&nbsp;&nbsp;8</td></tr>
38

    
39
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Half of a second. <br></td></tr>
40
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g94212be2394d2d37d9dfd33d07d82dba"></a><!-- doxytag: member="time::SECOND" ref="g94212be2394d2d37d9dfd33d07d82dba" args="" -->
41
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g94212be2394d2d37d9dfd33d07d82dba">SECOND</a>&nbsp;&nbsp;&nbsp;16</td></tr>
42

    
43
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">One second. <br></td></tr>
44
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4c2dc0c899e1571596205f29fcc35cd6"></a><!-- doxytag: member="time::TWO_SECOND" ref="g4c2dc0c899e1571596205f29fcc35cd6" args="" -->
45
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g4c2dc0c899e1571596205f29fcc35cd6">TWO_SECOND</a>&nbsp;&nbsp;&nbsp;32</td></tr>
46

    
47
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Two seconds. <br></td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g335312d1eed285bbc48a7f383ad78d97"></a><!-- doxytag: member="time::FOUR_SECOND" ref="g335312d1eed285bbc48a7f383ad78d97" args="" -->
49
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g335312d1eed285bbc48a7f383ad78d97">FOUR_SECOND</a>&nbsp;&nbsp;&nbsp;64</td></tr>
50

    
51
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Four seconds. <br></td></tr>
52
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g8aa473f8ae9a91df4bc9ea700983c72d">delay_ms</a> (int ms)</td></tr>
54

    
55
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delay execution for the specified time.  <a href="#g8aa473f8ae9a91df4bc9ea700983c72d"></a><br></td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g4b8a034dd8e994f4a1af612806f7c553">rtc_init</a> (int prescale_opt, void(*rtc_func)(void))</td></tr>
57

    
58
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable the realtime clock.  <a href="#g4b8a034dd8e994f4a1af612806f7c553"></a><br></td></tr>
59
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g5c7f2bf39314463dd5f4913e05ca991d">rtc_get</a> (void)</td></tr>
60

    
61
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of the realtime clock.  <a href="#g5c7f2bf39314463dd5f4913e05ca991d"></a><br></td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__time.html#g83ae542199d1c0e964aff89537d686a3">rtc_reset</a> (void)</td></tr>
63

    
64
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the counter of the realtime clock.  <a href="#g83ae542199d1c0e964aff89537d686a3"></a><br></td></tr>
65
</table>
66
<hr><a name="_details"></a><h2>Detailed Description</h2>
67
Time functions. 
68
<p>
69
Functions dealing with time. <hr><h2>Function Documentation</h2>
70
<a class="anchor" name="g8aa473f8ae9a91df4bc9ea700983c72d"></a><!-- doxytag: member="time.c::delay_ms" ref="g8aa473f8ae9a91df4bc9ea700983c72d" args="(int ms)" -->
71
<div class="memitem">
72
<div class="memproto">
73
      <table class="memname">
74
        <tr>
75
          <td class="memname">void delay_ms           </td>
76
          <td>(</td>
77
          <td class="paramtype">int&nbsp;</td>
78
          <td class="paramname"> <em>ms</em>          </td>
79
          <td>&nbsp;)&nbsp;</td>
80
          <td width="100%"></td>
81
        </tr>
82
      </table>
83
</div>
84
<div class="memdoc">
85

    
86
<p>
87
Delay execution for the specified time. 
88
<p>
89
Delays for the specified number of milliseconds. It depends on F_CPU to be defined in order to calculate how many cycles it should delay. If it is not defined, a default clock of 8MHz is assumed.<p>
90
We use _delay_loop_2 which will run assembly instructions that should be 4 cycles long. Optimizations must be enabled for this to be true. That function is called to ensure around 1ms per execution. To generate multiple ms we run a for loop of how many milliseconds are desired.<p>
91
The error should be just the skew on the oscillator as the formula to calculate delay cycles should always be a whole number. The is some skew in practice though it is unavoidable. Delaying for less than 1s should make the error negligable.<p>
92
<dl compact><dt><b>Parameters:</b></dt><dd>
93
  <table border="0" cellspacing="2" cellpadding="0">
94
    <tr><td valign="top"></td><td valign="top"><em>ms</em>&nbsp;</td><td>the number of milliseconds to delay for </td></tr>
95
  </table>
96
</dl>
97

    
98
<p>Referenced by <a class="el" href="dio_8c-source.html#l00251">button1_wait()</a>, <a class="el" href="dio_8c-source.html#l00294">button2_wait()</a>, <a class="el" href="buzzer_8c-source.html#l00115">buzzer_chirp()</a>, <a class="el" href="dragonfly__lib_8c-source.html#l00120">flash_red()</a>, <a class="el" href="lcd_8c-source.html#l00173">lcd_init()</a>, and <a class="el" href="odometry_8c-source.html#l00048">odometry_init()</a>.</p>
99

    
100
</div>
101
</div><p>
102
<a class="anchor" name="g5c7f2bf39314463dd5f4913e05ca991d"></a><!-- doxytag: member="time.c::rtc_get" ref="g5c7f2bf39314463dd5f4913e05ca991d" args="(void)" -->
103
<div class="memitem">
104
<div class="memproto">
105
      <table class="memname">
106
        <tr>
107
          <td class="memname">int rtc_get           </td>
108
          <td>(</td>
109
          <td class="paramtype">void&nbsp;</td>
110
          <td class="paramname">          </td>
111
          <td>&nbsp;)&nbsp;</td>
112
          <td width="100%"></td>
113
        </tr>
114
      </table>
115
</div>
116
<div class="memdoc">
117

    
118
<p>
119
Get the value of the realtime clock. 
120
<p>
121
Returns the time elapsed in seconds since the last call to rtc_init or rtc_reset.<p>
122
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of seconds since the last call to rtc_init or rtc_reset</dd></dl>
123
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__time.html#g4b8a034dd8e994f4a1af612806f7c553" title="Enable the realtime clock.">rtc_init</a>, <a class="el" href="group__time.html#g83ae542199d1c0e964aff89537d686a3" title="Reset the counter of the realtime clock.">rtc_reset</a> </dd></dl>
124

    
125
</div>
126
</div><p>
127
<a class="anchor" name="g4b8a034dd8e994f4a1af612806f7c553"></a><!-- doxytag: member="time.c::rtc_init" ref="g4b8a034dd8e994f4a1af612806f7c553" args="(int prescale_opt, void(*rtc_func)(void))" -->
128
<div class="memitem">
129
<div class="memproto">
130
      <table class="memname">
131
        <tr>
132
          <td class="memname">void rtc_init           </td>
133
          <td>(</td>
134
          <td class="paramtype">int&nbsp;</td>
135
          <td class="paramname"> <em>prescale_opt</em>, </td>
136
        </tr>
137
        <tr>
138
          <td class="paramkey"></td>
139
          <td></td>
140
          <td class="paramtype">void(*)(void)&nbsp;</td>
141
          <td class="paramname"> <em>rtc_func</em></td><td>&nbsp;</td>
142
        </tr>
143
        <tr>
144
          <td></td>
145
          <td>)</td>
146
          <td></td><td></td><td width="100%"></td>
147
        </tr>
148
      </table>
149
</div>
150
<div class="memdoc">
151

    
152
<p>
153
Enable the realtime clock. 
154
<p>
155
Initializes the real time clock. Prescales are defined in <a class="el" href="time_8h.html" title="Contains time-related functions and definitions.">time.h</a>. For example, SECOND will give 1 second. The specified function is called every clock tick. For the real time clock to activate, interrupts must be enabled. (through sei() )<p>
156
<dl compact><dt><b>Parameters:</b></dt><dd>
157
  <table border="0" cellspacing="2" cellpadding="0">
158
    <tr><td valign="top"></td><td valign="top"><em>prescale_opt</em>&nbsp;</td><td>the period with which the timer is triggered </td></tr>
159
    <tr><td valign="top"></td><td valign="top"><em>rtc_func</em>&nbsp;</td><td>the function called when the timer is triggered</td></tr>
160
  </table>
161
</dl>
162
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__time.html#g5c7f2bf39314463dd5f4913e05ca991d" title="Get the value of the realtime clock.">rtc_get</a>, <a class="el" href="group__time.html#g83ae542199d1c0e964aff89537d686a3" title="Reset the counter of the realtime clock.">rtc_reset</a> </dd></dl>
163

    
164
</div>
165
</div><p>
166
<a class="anchor" name="g83ae542199d1c0e964aff89537d686a3"></a><!-- doxytag: member="time.c::rtc_reset" ref="g83ae542199d1c0e964aff89537d686a3" args="(void)" -->
167
<div class="memitem">
168
<div class="memproto">
169
      <table class="memname">
170
        <tr>
171
          <td class="memname">void rtc_reset           </td>
172
          <td>(</td>
173
          <td class="paramtype">void&nbsp;</td>
174
          <td class="paramname">          </td>
175
          <td>&nbsp;)&nbsp;</td>
176
          <td width="100%"></td>
177
        </tr>
178
      </table>
179
</div>
180
<div class="memdoc">
181

    
182
<p>
183
Reset the counter of the realtime clock. 
184
<p>
185
Resets the real time clock counter to 0.<p>
186
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__time.html#g4b8a034dd8e994f4a1af612806f7c553" title="Enable the realtime clock.">rtc_init</a>, <a class="el" href="group__time.html#g5c7f2bf39314463dd5f4913e05ca991d" title="Get the value of the realtime clock.">rtc_get</a> </dd></dl>
187

    
188
</div>
189
</div><p>
190
</div>
191
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 2 23:20:09 2009 for libdragonfly by&nbsp;
192
<a href="http://www.doxygen.org/index.html">
193
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
194
</body>
195
</html>