⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_8c.html

📁 一个用AVR单片机做的PID炉温控制器
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>AVR221 - PID controller: main.c File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs">  <ul>    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>    <li class="current"><a href="files.html"><span>Files</span></a></li>    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="files.html"><span>File&nbsp;List</span></a></li>    <li><a href="globals.html"><span>Globals</span></a></li>  </ul></div><h1>main.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>Example of use of general PID implementation for AVR. <p>Example of how to setup and use the general PID implementation in <a class="el" href="pid_8c.html" title="General PID implementation for AVR.">pid.c</a>.<p><ul><li>File: <a class="el" href="main_8c.html" title="Example of use of general PID implementation for AVR.">main.c</a></li><li>Compiler: IAR EWAAVR 4.11A</li><li>Supported devices: All AVR devices can be used.</li><li>AppNote: AVR221 - Discrete PID controller</li></ul><p><dl class="author" compact><dt><b>Author:</b></dt><dd>Atmel Corporation: <a href="http://www.atmel.com">http://www.atmel.com</a> <br> Support email: <a href="mailto:avr@atmel.com">avr@atmel.com</a></dd></dl>$Name$ <dl class="rcs" compact><dt><b>Revision</b></dt><dd>456 </dd></dl>$RCSfile$ <dl class="rcs" compact><dt><b>Date</b></dt><dd>2006-02-16 12:46:13 +0100 (to, 16 feb 2006) </dd></dl><p>Definition in file <a class="el" href="main_8c-source.html">main.c</a>.<p><code>#include &lt;inavr.h&gt;</code><br><code>#include &lt;ioavr.h&gt;</code><br><code>#include &quot;<a class="el" href="stdint_8h-source.html">stdint.h</a>&quot;</code><br><code>#include &quot;<a class="el" href="pid_8h-source.html">pid.h</a>&quot;</code><br><p>Include dependency graph for main.c:<p><center><img src="main_8c__incl.png" border="0" usemap="#main.c_map" alt=""></center><map name="main.c_map"><area shape="rect" title="Example of use of general PID implementation for AVR." alt="" coords="116,5,177,32"><area shape="rect" title="Example of use of general PID implementation for AVR." alt="" coords="116,56,177,83"><area shape="rect" href="stdint_8h.html" title="Example of use of general PID implementation for AVR." alt="" coords="228,132,292,159"><area shape="rect" href="pid_8h.html" title="Example of use of general PID implementation for AVR." alt="" coords="121,157,172,184"></map><p><a href="main_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Data Structures</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGLOBAL__FLAGS.html">GLOBAL_FLAGS</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags for status information.  <a href="structGLOBAL__FLAGS.html#_details">More...</a><br></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#0b9e481775b5a7ecdd0dbb43cacc1a09">K_D</a>&nbsp;&nbsp;&nbsp;0.00</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#5e606c8dc6de900bea3cd7740ac1bd4d">K_I</a>&nbsp;&nbsp;&nbsp;0.00</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#cfc98b8c69707c30ac9a96bb12f2a0ab">K_P</a>&nbsp;&nbsp;&nbsp;1.00</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#847b99b287f7c6555ab0f1cb4ed52119">TIME_INTERVAL</a>&nbsp;&nbsp;&nbsp;157</td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="stdint_8h.html#269259c924dce846340ddbb810db2e3c">int16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#6c21c2fcef2ac5b7bd483e1ca38f14e0">Get_Measurement</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read system process value.  <a href="#6c21c2fcef2ac5b7bd483e1ca38f14e0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="stdint_8h.html#269259c924dce846340ddbb810db2e3c">int16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#5d425d60c4c5cc27b85f5d91f3089b24">Get_Reference</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read reference value.  <a href="#5d425d60c4c5cc27b85f5d91f3089b24"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#7ce0a14b6e7779fbb2d9a05333792c41">Init</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Init of PID controller demo.  <a href="#7ce0a14b6e7779fbb2d9a05333792c41"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#6288eba0f8e8ad3ab1544ad731eb7667">main</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Demo of PID controller.  <a href="#6288eba0f8e8ad3ab1544ad731eb7667"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#9890f9c197e2e87a8b187f2c4c821e7a">Set_Input</a> (<a class="el" href="stdint_8h.html#269259c924dce846340ddbb810db2e3c">int16_t</a> inputValue)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set control input to system.  <a href="#9890f9c197e2e87a8b187f2c4c821e7a"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">__interrupt void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#8b6ed5249679f9ab632635809380a5e5">TIMER0_OVF_ISR</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Timer interrupt to control the sampling interval.  <a href="#8b6ed5249679f9ab632635809380a5e5"></a><br></td></tr><tr><td colspan="2"><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structGLOBAL__FLAGS.html">GLOBAL_FLAGS</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#37da6ea23a280bce8cc2ba16f6a31532">gFlags</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags for status information.  <a href="#37da6ea23a280bce8cc2ba16f6a31532"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structPID__DATA.html">PID_DATA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#e95a1d87e515fada8578052871321ff9">pidData</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parameters for regulator.  <a href="#e95a1d87e515fada8578052871321ff9"></a><br></td></tr></table><hr><h2>Define Documentation</h2><a class="anchor" name="0b9e481775b5a7ecdd0dbb43cacc1a09"></a><!-- doxytag: member="main.c::K_D" ref="0b9e481775b5a7ecdd0dbb43cacc1a09" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">#define K_D&nbsp;&nbsp;&nbsp;0.00          </td>        </tr>      </table></div><div class="memdoc"><p><dl compact><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd></dd></dl><p>Definition at line <a class="el" href="main_8c-source.html#l00037">37</a> of file <a class="el" href="main_8c-source.html">main.c</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00075">Init()</a>.</div></div><p><a class="anchor" name="5e606c8dc6de900bea3cd7740ac1bd4d"></a><!-- doxytag: member="main.c::K_I" ref="5e606c8dc6de900bea3cd7740ac1bd4d" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">#define K_I&nbsp;&nbsp;&nbsp;0.00          </td>        </tr>      </table></div><div class="memdoc"><p><dl compact><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd></dd></dl><p>Definition at line <a class="el" href="main_8c-source.html#l00035">35</a> of file <a class="el" href="main_8c-source.html">main.c</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00075">Init()</a>.</div></div><p><a class="anchor" name="cfc98b8c69707c30ac9a96bb12f2a0ab"></a><!-- doxytag: member="main.c::K_P" ref="cfc98b8c69707c30ac9a96bb12f2a0ab" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">#define K_P&nbsp;&nbsp;&nbsp;1.00          </td>        </tr>      </table></div><div class="memdoc"><p>The K_P, K_I and K_D values (P, I and D gains) need to be modified to adapt to the application at hand<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd></dd></dl><p>Definition at line <a class="el" href="main_8c-source.html#l00033">33</a> of file <a class="el" href="main_8c-source.html">main.c</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00075">Init()</a>.</div></div><p><a class="anchor" name="847b99b287f7c6555ab0f1cb4ed52119"></a><!-- doxytag: member="main.c::TIME_INTERVAL" ref="847b99b287f7c6555ab0f1cb4ed52119" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">#define TIME_INTERVAL&nbsp;&nbsp;&nbsp;157          </td>        </tr>      </table></div><div class="memdoc"><p>Specify the desired PID sample time interval With a 8-bit counter (255 cylces to overflow), the time interval value is calculated as follows: TIME_INTERVAL = ( desired interval [sec] ) * ( frequency [Hz] ) / 255<dl compact><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd></dd></dl><p>Definition at line <a class="el" href="main_8c-source.html#l00057">57</a> of file <a class="el" href="main_8c-source.html">main.c</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00062">TIMER0_OVF_ISR()</a>.</div></div><p><hr><h2>Function Documentation</h2><a class="anchor" name="6c21c2fcef2ac5b7bd483e1ca38f14e0"></a><!-- doxytag: member="main.c::Get_Measurement" ref="6c21c2fcef2ac5b7bd483e1ca38f14e0" args="(void)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname"><a class="el" href="stdint_8h.html#269259c924dce846340ddbb810db2e3c">int16_t</a> Get_Measurement           </td>          <td>(</td>          <td class="paramtype">void&nbsp;</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>Read system process value. <p>This function must return the measured data <p>Definition at line <a class="el" href="main_8c-source.html#l00099">99</a> of file <a class="el" href="main_8c-source.html">main.c</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00117">main()</a>.<div class="fragment"><pre class="fragment"><a name="l00100"></a>00100 {<a name="l00101"></a>00101   <span class="keywordflow">return</span> 4;<a name="l00102"></a>00102 }</pre></div><p></div></div><p><a class="anchor" name="5d425d60c4c5cc27b85f5d91f3089b24"></a><!-- doxytag: member="main.c::Get_Reference" ref="5d425d60c4c5cc27b85f5d91f3089b24" args="(void)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname"><a class="el" href="stdint_8h.html#269259c924dce846340ddbb810db2e3c">int16_t</a> Get_Reference           </td>          <td>(</td>          <td class="paramtype">void&nbsp;</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>Read reference value. <p>This function must return the reference value. May be constant or varying <p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -