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

📄 speed__cntr_8h-source.html

📁 使用AVR单片机控制步进电机的软件代码
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>AVR446 - Linear speed control of stepper motor: speed_cntr.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.7 --><div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div><h1>speed_cntr.h</h1><a href="speed__cntr_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/*This file has been prepared for Doxygen automatic documentation generation.*/</span>00021 <span class="preprocessor">#ifndef SPEED_CNTR_H</span>00022 <span class="preprocessor"></span><span class="preprocessor">#define SPEED_CNTR_H</span>00023 <span class="preprocessor"></span><a name="l00030"></a><a class="code" href="structspeedRampData.html">00030</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{<a name="l00032"></a><a class="code" href="structspeedRampData.html#o5">00032</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> run_state : 3;<a name="l00034"></a><a class="code" href="structspeedRampData.html#o3">00034</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> dir : 1;<a name="l00036"></a><a class="code" href="structspeedRampData.html#o6">00036</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> step_delay;<a name="l00038"></a><a class="code" href="structspeedRampData.html#o1">00038</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> decel_start;<a name="l00040"></a><a class="code" href="structspeedRampData.html#o2">00040</a>   <span class="keywordtype">signed</span> <span class="keywordtype">int</span> decel_val;<a name="l00042"></a><a class="code" href="structspeedRampData.html#o4">00042</a>   <span class="keywordtype">signed</span> <span class="keywordtype">int</span> min_delay;<a name="l00044"></a><a class="code" href="structspeedRampData.html#o0">00044</a>   <span class="keywordtype">signed</span> <span class="keywordtype">int</span> accel_count;00045 } <a class="code" href="structspeedRampData.html">speedRampData</a>;00046 00052 <span class="comment">// Timer/Counter 1 running on 3,686MHz / 8 = 460,75kHz (2,17uS). (T1-FREQ 460750)</span><a name="l00053"></a><a class="code" href="speed__cntr_8h.html#a0">00053</a> <span class="preprocessor">#define T1_FREQ 460750</span>00054 <span class="preprocessor"></span><a name="l00056"></a><a class="code" href="speed__cntr_8h.html#a1">00056</a> <span class="preprocessor">#define FSPR 200</span>00057 <span class="preprocessor"></span>00058 <span class="preprocessor">#ifdef HALFSTEPS</span>00059 <span class="preprocessor"></span><span class="preprocessor">  #define SPR (FSPR*2)</span>00060 <span class="preprocessor"></span><span class="preprocessor">  #pragma message("[speed_cntr.c] *** Using Halfsteps ***")</span>00061 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00062 <span class="preprocessor"></span><span class="preprocessor">#ifdef FULLSTEPS</span>00063 <span class="preprocessor"></span><span class="preprocessor">  #define SPR FSPR</span>00064 <span class="preprocessor"></span><span class="preprocessor">  #pragma message("[speed_cntr.c] *** Using Fullsteps ***")</span>00065 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00066 <span class="preprocessor"></span><span class="preprocessor">#ifndef HALFSTEPS</span>00067 <span class="preprocessor"></span><span class="preprocessor">  #ifndef FULLSTEPS</span>00068 <span class="preprocessor"></span><span class="preprocessor">    #error FULLSTEPS/HALFSTEPS not defined!</span>00069 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>00070 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00071 <span class="preprocessor"></span>00072 <span class="comment">// Maths constants. To simplify maths when calculating in speed_cntr_Move().</span><a name="l00073"></a><a class="code" href="speed__cntr_8h.html#a2">00073</a> <span class="preprocessor">#define ALPHA (2*3.14159/SPR)                    // 2*pi/spr</span><a name="l00074"></a><a class="code" href="speed__cntr_8h.html#a3">00074</a> <span class="preprocessor"></span><span class="preprocessor">#define A_T_x100 ((long)(ALPHA*T1_FREQ*100))     // (ALPHA / T1_FREQ)*100</span><a name="l00075"></a><a class="code" href="speed__cntr_8h.html#a4">00075</a> <span class="preprocessor"></span><span class="preprocessor">#define T1_FREQ_148 ((int)((T1_FREQ*0.676)/100)) // divided by 100 and scaled by 0.676</span><a name="l00076"></a><a class="code" href="speed__cntr_8h.html#a5">00076</a> <span class="preprocessor"></span><span class="preprocessor">#define A_SQ (long)(ALPHA*2*10000000000)         // ALPHA*2*10000000000</span><a name="l00077"></a><a class="code" href="speed__cntr_8h.html#a6">00077</a> <span class="preprocessor"></span><span class="preprocessor">#define A_x20000 (int)(ALPHA*20000)              // ALPHA*20000</span>00078 <span class="preprocessor"></span>00079 <span class="comment">// Speed ramp states</span><a name="l00080"></a><a class="code" href="speed__cntr_8h.html#a7">00080</a> <span class="preprocessor">#define STOP  0</span><a name="l00081"></a><a class="code" href="speed__cntr_8h.html#a8">00081</a> <span class="preprocessor"></span><span class="preprocessor">#define ACCEL 1</span><a name="l00082"></a><a class="code" href="speed__cntr_8h.html#a9">00082</a> <span class="preprocessor"></span><span class="preprocessor">#define DECEL 2</span><a name="l00083"></a><a class="code" href="speed__cntr_8h.html#a10">00083</a> <span class="preprocessor"></span><span class="preprocessor">#define RUN   3</span>00084 <span class="preprocessor"></span>00085 <span class="keywordtype">void</span> <a class="code" href="speed__cntr_8h.html#a12">speed_cntr_Move</a>(<span class="keywordtype">signed</span> <span class="keywordtype">int</span> step, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> accel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> decel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> speed);00086 <span class="keywordtype">void</span> <a class="code" href="speed__cntr_8c.html#a2">speed_cntr_Init_Timer1</a>(<span class="keywordtype">void</span>);00087 <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sqrt(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> v);00088 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="speed__cntr_8h.html#a15">min</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y);00089 <a name="l00091"></a><a class="code" href="speed__cntr_8h.html#a11">00091</a> <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structGLOBAL__FLAGS.html">GLOBAL_FLAGS</a> <a class="code" href="main_8c.html#a0">status</a>;00092 00093 <span class="preprocessor">#endif</span></div></pre><hr size="1"><address style="align: right;"><small>Generated on Mon May 8 15:05:03 2006 for AVR446 - Linear speed control of stepper motor by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address></body></html>

⌨️ 快捷键说明

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