satnogs-rotator-firmware/doxygen_files/html/stepper__motor__controller_...

136 lines
64 KiB
HTML

<!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"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>satnogs-rotator-firmware: stepper_motor_controller/stepper_motor_controller.ino Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</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: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">satnogs-rotator-firmware
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_38beefcdfcb3558d1106b46c26a5f20c.html">stepper_motor_controller</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">stepper_motor_controller.ino</div> </div>
</div><!--header-->
<div class="contents">
<a href="stepper__motor__controller_8ino.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a6f6f49388c74bb24a8f63771bd997d97"> 25</a></span>&#160;<span class="preprocessor">#define SAMPLE_TIME 0.1 </span></div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a7e8b3c8482e593df0ace933ad3de22ee"> 26</a></span>&#160;<span class="preprocessor">#define RATIO 54 </span></div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#aca9cca604052ac7a6f173b58b7d6e126"> 27</a></span>&#160;<span class="preprocessor">#define MICROSTEP 8 </span></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#ad95c8286fc30ece77d632ad00a94d80e"> 28</a></span>&#160;<span class="preprocessor">#define MIN_PULSE_WIDTH 20 </span></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#ac2cd96d53dd3ba6407db6766c3d92b26"> 29</a></span>&#160;<span class="preprocessor">#define MAX_SPEED 6400 </span></div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a58daa60c7e280af9449f3cc46097652b"> 30</a></span>&#160;<span class="preprocessor">#define MAX_ACCELERATION 1600 </span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#abc0e9de1ad11261774993fbad495209e"> 31</a></span>&#160;<span class="preprocessor">#define SPR 1600L </span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#af4acc4b3e38c809c8ca4d84d5c1083cf"> 32</a></span>&#160;<span class="preprocessor">#define MIN_M1_ANGLE 0 </span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#ac81f1607c784261cee0a9759a35f18ff"> 33</a></span>&#160;<span class="preprocessor">#define MAX_M1_ANGLE 360 </span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a45dd8cb284dc0672f292e90909ecc530"> 34</a></span>&#160;<span class="preprocessor">#define MIN_M2_ANGLE 0 </span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#acaea33d85a46b9afdd404f6a45da8470"> 35</a></span>&#160;<span class="preprocessor">#define MAX_M2_ANGLE 180 </span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#aa9fdf484ccfc3264b1505135c801aadc"> 36</a></span>&#160;<span class="preprocessor">#define DEFAULT_HOME_STATE HIGH </span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#acf4a8c328d7d16e349494adf938d575c"> 37</a></span>&#160;<span class="preprocessor">#define HOME_DELAY 10000 </span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;AccelStepper.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;Wire.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;../libraries/globals.h&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;../libraries/easycomm.h&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;../libraries/rotator_pins.h&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../libraries/rs485.h&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../libraries/endstop.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../libraries/watchdog.h&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#ab758c64f84e0623e98a61e37b9bdd2b7"> 48</a></span>&#160;uint32_t <a class="code" href="stepper__motor__controller_8ino.html#ab758c64f84e0623e98a61e37b9bdd2b7">t_run</a> = 0; <span class="comment">// run time of uC</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a43731445552d0e8cea4cbc7c75ba56cb"> 49</a></span>&#160;<a class="code" href="classeasycomm.html">easycomm</a> <a class="code" href="stepper__motor__controller_8ino.html#a43731445552d0e8cea4cbc7c75ba56cb">comm</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;AccelStepper <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>(1, <a class="code" href="rotator__pins_8h.html#a52eb32b92f0d0d1fdfc59a83e22d389d">M1IN1</a>, <a class="code" href="rotator__pins_8h.html#a157fe9dc9b50d6f912b57b3422848700">M1IN2</a>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;AccelStepper <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>(1, <a class="code" href="rotator__pins_8h.html#ad43a98121cb04032302978a3319ba24e">M2IN1</a>, <a class="code" href="rotator__pins_8h.html#a1f7e92e76bed5849fc1edc2e42c995dc">M2IN2</a>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<a class="code" href="classendstop.html">endstop</a> <a class="code" href="stepper__motor__controller_8ino.html#a0c0a9fc59fead4da5429a12a827f6e92">switch_az</a>(<a class="code" href="rotator__pins_8h.html#ad98a4599f8bbf48bb5b425ce5edb5a42">SW1</a>, <a class="code" href="stepper__motor__controller_8ino.html#aa9fdf484ccfc3264b1505135c801aadc">DEFAULT_HOME_STATE</a>), <a class="code" href="stepper__motor__controller_8ino.html#a0886ffe9fa915cc70ac3ed7e528145d9">switch_el</a>(<a class="code" href="rotator__pins_8h.html#a276a7c4ba0f813d53715e2ec2595d906">SW2</a>, <a class="code" href="stepper__motor__controller_8ino.html#aa9fdf484ccfc3264b1505135c801aadc">DEFAULT_HOME_STATE</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70"> 53</a></span>&#160;<a class="code" href="classwdt__timer.html">wdt_timer</a> <a class="code" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">enum</span> <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1">_rotator_error</a> <a class="code" href="stepper__motor__controller_8ino.html#afe48c9319f61788ed4622597bdaf17ab">homing</a>(int32_t seek_az, int32_t seek_el);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;int32_t <a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(<span class="keywordtype">float</span> deg);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">float</span> <a class="code" href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d">step2deg</a>(int32_t step);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a4fc01d736fe50cf5b977f755b675f11d"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="stepper__motor__controller_8ino.html#a4fc01d736fe50cf5b977f755b675f11d">setup</a>() {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Homing switch</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#a0c0a9fc59fead4da5429a12a827f6e92">switch_az</a>.<a class="code" href="classendstop.html#a6d24d7ed95ded92431288da42a6aebf9">init</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#a0886ffe9fa915cc70ac3ed7e528145d9">switch_el</a>.<a class="code" href="classendstop.html#a6d24d7ed95ded92431288da42a6aebf9">init</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Serial Communication</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#a43731445552d0e8cea4cbc7c75ba56cb">comm</a>.<a class="code" href="classeasycomm.html#a7db30a0f3a754dc281cbedab461d76f6">easycomm_init</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Stepper Motor setup</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setEnablePin(<a class="code" href="rotator__pins_8h.html#a30b8dc781a6fe8ee7745feac552cb858">MOTOR_EN</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setPinsInverted(<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.enableOutputs();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setMaxSpeed(<a class="code" href="stepper__motor__controller_8ino.html#ac2cd96d53dd3ba6407db6766c3d92b26">MAX_SPEED</a>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setAcceleration(<a class="code" href="stepper__motor__controller_8ino.html#a58daa60c7e280af9449f3cc46097652b">MAX_ACCELERATION</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setMinPulseWidth(<a class="code" href="stepper__motor__controller_8ino.html#ad95c8286fc30ece77d632ad00a94d80e">MIN_PULSE_WIDTH</a>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.setPinsInverted(<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.enableOutputs();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.setMaxSpeed(<a class="code" href="stepper__motor__controller_8ino.html#ac2cd96d53dd3ba6407db6766c3d92b26">MAX_SPEED</a>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.setAcceleration(<a class="code" href="stepper__motor__controller_8ino.html#a58daa60c7e280af9449f3cc46097652b">MAX_ACCELERATION</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.setMinPulseWidth(<a class="code" href="stepper__motor__controller_8ino.html#ad95c8286fc30ece77d632ad00a94d80e">MIN_PULSE_WIDTH</a>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Initialize WDT</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a>.<a class="code" href="classwdt__timer.html#a4463b57c8af9b89797cb222c745c0355">watchdog_init</a>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#afe461d27b9c48d5921c00d521181f12f"> 84</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="stepper__motor__controller_8ino.html#afe461d27b9c48d5921c00d521181f12f">loop</a>() {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Update WDT</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a>.<a class="code" href="classwdt__timer.html#a1be743743ff4d19d726a45c2d49fbada">watchdog_reset</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Get end stop status</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a5626b9e27ffdef0f5f8851ebb5a27812">switch_az</a> = <a class="code" href="stepper__motor__controller_8ino.html#a0c0a9fc59fead4da5429a12a827f6e92">switch_az</a>.<a class="code" href="classendstop.html#a530a60aaf81bd5022e56df71c194dfbc">get_state</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a88068d1cd476b7a52bbc400c77e81d9a">switch_el</a> = <a class="code" href="stepper__motor__controller_8ino.html#a0886ffe9fa915cc70ac3ed7e528145d9">switch_el</a>.<a class="code" href="classendstop.html#a530a60aaf81bd5022e56df71c194dfbc">get_state</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Run easycomm implementation</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#a43731445552d0e8cea4cbc7c75ba56cb">comm</a>.<a class="code" href="classeasycomm.html#a68c229f5c44074fae9992ec9ea605046">easycomm_proc</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Get position of both axis</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="globals_8h.html#a87c5a684fccc0f0ed68486d54ffbda77">control_az</a>.<a class="code" href="struct__control.html#adc122b9fd1dc7cb0b859405b0bc6ad1a">input</a> = <a class="code" href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d">step2deg</a>(<a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.currentPosition());</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="globals_8h.html#ade92ac8f94e642ce7708250d1235ae85">control_el</a>.<a class="code" href="struct__control.html#adc122b9fd1dc7cb0b859405b0bc6ad1a">input</a> = <a class="code" href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d">step2deg</a>(<a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.currentPosition());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Check rotator status</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> != <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501ad606e435413ea0944dd00d49e901e4ed">error</a>) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#adf96afc711bf7075748f043b1b656311">homing_flag</a> == <span class="keyword">false</span>) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Check home flag</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a86308cdfcd35e4a153476bf09869a981">control_mode</a> = <a class="code" href="globals_8h.html#a011a2a3681d95bf0def772367ba6ad33a186286c1e4467cf7aeb7d01bca2ba162">position</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Homing</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">rotator_error</a> = <a class="code" href="stepper__motor__controller_8ino.html#afe48c9319f61788ed4622597bdaf17ab">homing</a>(<a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(-<a class="code" href="stepper__motor__controller_8ino.html#ac81f1607c784261cee0a9759a35f18ff">MAX_M1_ANGLE</a>),</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(-<a class="code" href="stepper__motor__controller_8ino.html#acaea33d85a46b9afdd404f6a45da8470">MAX_M2_ANGLE</a>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">rotator_error</a> == <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a1f1efebf2c41e3bef0fef1862bf5f0c4">no_error</a>) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// No error</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> = <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501a0e9a37114c0e458d28d52f06ec0f2242">idle</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#adf96afc711bf7075748f043b1b656311">homing_flag</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Error</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> = <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501ad606e435413ea0944dd00d49e901e4ed">error</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">rotator_error</a> = <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a83cf4d6b86174dccaf2a83810b4f83b6">homing_error</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Control Loop</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.moveTo(<a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(<a class="code" href="globals_8h.html#a87c5a684fccc0f0ed68486d54ffbda77">control_az</a>.<a class="code" href="struct__control.html#a1d9d72c3f267607ad077052f215cbcd5">setpoint</a>));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.moveTo(<a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(<a class="code" href="globals_8h.html#ade92ac8f94e642ce7708250d1235ae85">control_el</a>.<a class="code" href="struct__control.html#a1d9d72c3f267607ad077052f215cbcd5">setpoint</a>));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> = <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501ad975d8e65ab97856d5861bd3065e4f67">pointing</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Move azimuth and elevation motors</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.run();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.run();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Idle rotator</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.distanceToGo() == 0 &amp;&amp; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.distanceToGo() == 0) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> = <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501a0e9a37114c0e458d28d52f06ec0f2242">idle</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// Error handler, stop motors and disable the motor driver</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.stop();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.disableOutputs();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.stop();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.disableOutputs();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">rotator_error</a> != <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a83cf4d6b86174dccaf2a83810b4f83b6">homing_error</a>) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Reset error according to error value</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">rotator_error</a> = <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a1f1efebf2c41e3bef0fef1862bf5f0c4">no_error</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a>.<a class="code" href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">rotator_status</a> = <a class="code" href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501a0e9a37114c0e458d28d52f06ec0f2242">idle</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#afe48c9319f61788ed4622597bdaf17ab"> 154</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1">_rotator_error</a> <a class="code" href="stepper__motor__controller_8ino.html#afe48c9319f61788ed4622597bdaf17ab">homing</a>(int32_t seek_az, int32_t seek_el) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> isHome_az = <span class="keyword">false</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">bool</span> isHome_el = <span class="keyword">false</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// Move motors to &quot;seek&quot; position</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.moveTo(seek_az);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.moveTo(seek_el);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// Homing loop</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">while</span> (isHome_az == <span class="keyword">false</span> || isHome_el == <span class="keyword">false</span>) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// Update WDT</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a>.<a class="code" href="classwdt__timer.html#a1be743743ff4d19d726a45c2d49fbada">watchdog_reset</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="stepper__motor__controller_8ino.html#a0c0a9fc59fead4da5429a12a827f6e92">switch_az</a>.<a class="code" href="classendstop.html#a530a60aaf81bd5022e56df71c194dfbc">get_state</a>() == <span class="keyword">true</span> &amp;&amp; !isHome_az) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// Find azimuth home</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.moveTo(<a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.currentPosition());</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; isHome_az = <span class="keyword">true</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="stepper__motor__controller_8ino.html#a0886ffe9fa915cc70ac3ed7e528145d9">switch_el</a>.<a class="code" href="classendstop.html#a530a60aaf81bd5022e56df71c194dfbc">get_state</a>() == <span class="keyword">true</span> &amp;&amp; !isHome_el) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// Find elevation home</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.moveTo(<a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.currentPosition());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; isHome_el = <span class="keyword">true</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// Check if the rotator goes out of limits or something goes wrong (in</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// mechanical)</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> ((<a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.distanceToGo() == 0 &amp;&amp; !isHome_az) ||</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; (<a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.distanceToGo() == 0 &amp;&amp; !isHome_el)){</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a83cf4d6b86174dccaf2a83810b4f83b6">homing_error</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// Move motors to &quot;seek&quot; position</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.run();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.run();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Delay to Deccelerate and homing, to complete the movements</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint32_t time = millis();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">while</span> (millis() - time &lt; <a class="code" href="stepper__motor__controller_8ino.html#acf4a8c328d7d16e349494adf938d575c">HOME_DELAY</a>) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a>.<a class="code" href="classwdt__timer.html#a1be743743ff4d19d726a45c2d49fbada">watchdog_reset</a>();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.run();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.run();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// Set the home position and reset all critical control variables</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a>.setCurrentPosition(0);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a>.setCurrentPosition(0);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="globals_8h.html#a87c5a684fccc0f0ed68486d54ffbda77">control_az</a>.<a class="code" href="struct__control.html#a1d9d72c3f267607ad077052f215cbcd5">setpoint</a> = 0;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="globals_8h.html#ade92ac8f94e642ce7708250d1235ae85">control_el</a>.<a class="code" href="struct__control.html#a1d9d72c3f267607ad077052f215cbcd5">setpoint</a> = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a1f1efebf2c41e3bef0fef1862bf5f0c4">no_error</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159"> 211</a></span>&#160;int32_t <a class="code" href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a>(<span class="keywordtype">float</span> deg) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stepper__motor__controller_8ino.html#a7e8b3c8482e593df0ace933ad3de22ee">RATIO</a> * <a class="code" href="stepper__motor__controller_8ino.html#abc0e9de1ad11261774993fbad495209e">SPR</a> * deg / 360);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d"> 224</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d">step2deg</a>(int32_t step) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> (360.00 * step / (<a class="code" href="stepper__motor__controller_8ino.html#abc0e9de1ad11261774993fbad495209e">SPR</a> * <a class="code" href="stepper__motor__controller_8ino.html#a7e8b3c8482e593df0ace933ad3de22ee">RATIO</a>));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="ttc" id="rotator__pins_8h_html_ad98a4599f8bbf48bb5b425ce5edb5a42"><div class="ttname"><a href="rotator__pins_8h.html#ad98a4599f8bbf48bb5b425ce5edb5a42">SW1</a></div><div class="ttdeci">#define SW1</div><div class="ttdoc">Digital input, to read the status of end-stop for motor 1. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00025">rotator_pins.h:25</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a43731445552d0e8cea4cbc7c75ba56cb"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a43731445552d0e8cea4cbc7c75ba56cb">comm</a></div><div class="ttdeci">easycomm comm</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00049">stepper_motor_controller.ino:49</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_ad43a98121cb04032302978a3319ba24e"><div class="ttname"><a href="rotator__pins_8h.html#ad43a98121cb04032302978a3319ba24e">M2IN1</a></div><div class="ttdeci">#define M2IN1</div><div class="ttdoc">Motor 2 PWM pin. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00018">rotator_pins.h:18</a></div></div>
<div class="ttc" id="struct__control_html_adc122b9fd1dc7cb0b859405b0bc6ad1a"><div class="ttname"><a href="struct__control.html#adc122b9fd1dc7cb0b859405b0bc6ad1a">_control::input</a></div><div class="ttdeci">double input</div><div class="ttdoc">Motor Position feedback in deg. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00030">globals.h:30</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_a1f7e92e76bed5849fc1edc2e42c995dc"><div class="ttname"><a href="rotator__pins_8h.html#a1f7e92e76bed5849fc1edc2e42c995dc">M2IN2</a></div><div class="ttdeci">#define M2IN2</div><div class="ttdoc">Motor 2 PWM pin. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00019">rotator_pins.h:19</a></div></div>
<div class="ttc" id="classwdt__timer_html"><div class="ttname"><a href="classwdt__timer.html">wdt_timer</a></div><div class="ttdoc">Class that functions for interacting with a watchdog timer. </div><div class="ttdef"><b>Definition:</b> <a href="watchdog_8h_source.html#l00023">watchdog.h:23</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_afe461d27b9c48d5921c00d521181f12f"><div class="ttname"><a href="stepper__motor__controller_8ino.html#afe461d27b9c48d5921c00d521181f12f">loop</a></div><div class="ttdeci">void loop()</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00084">stepper_motor_controller.ino:84</a></div></div>
<div class="ttc" id="globals_8h_html_ae09bc16eee2b545dd6a98d700c3e3501a0e9a37114c0e458d28d52f06ec0f2242"><div class="ttname"><a href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501a0e9a37114c0e458d28d52f06ec0f2242">idle</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00017">globals.h:17</a></div></div>
<div class="ttc" id="globals_8h_html_a011a2a3681d95bf0def772367ba6ad33a186286c1e4467cf7aeb7d01bca2ba162"><div class="ttname"><a href="globals_8h.html#a011a2a3681d95bf0def772367ba6ad33a186286c1e4467cf7aeb7d01bca2ba162">position</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00026">globals.h:26</a></div></div>
<div class="ttc" id="globals_8h_html_ae09bc16eee2b545dd6a98d700c3e3501ad975d8e65ab97856d5861bd3065e4f67"><div class="ttname"><a href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501ad975d8e65ab97856d5861bd3065e4f67">pointing</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00017">globals.h:17</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a4fc01d736fe50cf5b977f755b675f11d"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a4fc01d736fe50cf5b977f755b675f11d">setup</a></div><div class="ttdeci">void setup()</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00059">stepper_motor_controller.ino:59</a></div></div>
<div class="ttc" id="classeasycomm_html_a68c229f5c44074fae9992ec9ea605046"><div class="ttname"><a href="classeasycomm.html#a68c229f5c44074fae9992ec9ea605046">easycomm::easycomm_proc</a></div><div class="ttdeci">void easycomm_proc()</div><div class="ttdoc">Get the commands from RS485 and response to the client. </div><div class="ttdef"><b>Definition:</b> <a href="easycomm_8h_source.html#l00048">easycomm.h:48</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_a30b8dc781a6fe8ee7745feac552cb858"><div class="ttname"><a href="rotator__pins_8h.html#a30b8dc781a6fe8ee7745feac552cb858">MOTOR_EN</a></div><div class="ttdeci">#define MOTOR_EN</div><div class="ttdoc">Digital output, to enable the motors. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00023">rotator_pins.h:23</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ad95c8286fc30ece77d632ad00a94d80e"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ad95c8286fc30ece77d632ad00a94d80e">MIN_PULSE_WIDTH</a></div><div class="ttdeci">#define MIN_PULSE_WIDTH</div><div class="ttdoc">In microsecond for AccelStepper. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00028">stepper_motor_controller.ino:28</a></div></div>
<div class="ttc" id="struct__control_html_a1d9d72c3f267607ad077052f215cbcd5"><div class="ttname"><a href="struct__control.html#a1d9d72c3f267607ad077052f215cbcd5">_control::setpoint</a></div><div class="ttdeci">double setpoint</div><div class="ttdoc">Position set point in deg. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00033">globals.h:33</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a989afa0bbcee20968a0c01cb53bf3159"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a989afa0bbcee20968a0c01cb53bf3159">deg2step</a></div><div class="ttdeci">int32_t deg2step(float deg)</div><div class="ttdoc">Convert degrees to steps according to step/revolution, rotator gear box ratio and microstep...</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00211">stepper_motor_controller.ino:211</a></div></div>
<div class="ttc" id="classendstop_html_a6d24d7ed95ded92431288da42a6aebf9"><div class="ttname"><a href="classendstop.html#a6d24d7ed95ded92431288da42a6aebf9">endstop::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">Initialize the Input pin for end-stop. </div><div class="ttdef"><b>Definition:</b> <a href="endstop_8h_source.html#l00035">endstop.h:35</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a0c0a9fc59fead4da5429a12a827f6e92"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a0c0a9fc59fead4da5429a12a827f6e92">switch_az</a></div><div class="ttdeci">endstop switch_az(SW1, DEFAULT_HOME_STATE)</div></div>
<div class="ttc" id="struct__rotator_html_a5626b9e27ffdef0f5f8851ebb5a27812"><div class="ttname"><a href="struct__rotator.html#a5626b9e27ffdef0f5f8851ebb5a27812">_rotator::switch_az</a></div><div class="ttdeci">bool switch_az</div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00048">globals.h:48</a></div></div>
<div class="ttc" id="globals_8h_html_a455fc53a09c638322a14f309a295e7f1a1f1efebf2c41e3bef0fef1862bf5f0c4"><div class="ttname"><a href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a1f1efebf2c41e3bef0fef1862bf5f0c4">no_error</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00021">globals.h:21</a></div></div>
<div class="ttc" id="globals_8h_html_a87c5a684fccc0f0ed68486d54ffbda77"><div class="ttname"><a href="globals_8h.html#a87c5a684fccc0f0ed68486d54ffbda77">control_az</a></div><div class="ttdeci">_control control_az</div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00051">globals.h:51</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ab758c64f84e0623e98a61e37b9bdd2b7"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ab758c64f84e0623e98a61e37b9bdd2b7">t_run</a></div><div class="ttdeci">uint32_t t_run</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00048">stepper_motor_controller.ino:48</a></div></div>
<div class="ttc" id="globals_8h_html_addd34cf12b8ad4e4eb65097b7c950dc4"><div class="ttname"><a href="globals_8h.html#addd34cf12b8ad4e4eb65097b7c950dc4">rotator</a></div><div class="ttdeci">_rotator rotator</div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00057">globals.h:57</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a0886ffe9fa915cc70ac3ed7e528145d9"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a0886ffe9fa915cc70ac3ed7e528145d9">switch_el</a></div><div class="ttdeci">endstop switch_el(SW2, DEFAULT_HOME_STATE)</div></div>
<div class="ttc" id="classendstop_html"><div class="ttname"><a href="classendstop.html">endstop</a></div><div class="ttdoc">Class that functions for interacting with end-stop. </div><div class="ttdef"><b>Definition:</b> <a href="endstop_8h_source.html#l00022">endstop.h:22</a></div></div>
<div class="ttc" id="struct__rotator_html_ad7f5a96e0a6675c3471670c927bbae49"><div class="ttname"><a href="struct__rotator.html#ad7f5a96e0a6675c3471670c927bbae49">_rotator::rotator_status</a></div><div class="ttdeci">enum _rotator_status rotator_status</div><div class="ttdoc">Rotator status. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00041">globals.h:41</a></div></div>
<div class="ttc" id="struct__rotator_html_a169bb52a1b00c2506bf7979aae6bab12"><div class="ttname"><a href="struct__rotator.html#a169bb52a1b00c2506bf7979aae6bab12">_rotator::rotator_error</a></div><div class="ttdeci">enum _rotator_error rotator_error</div><div class="ttdoc">Rotator error. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00042">globals.h:42</a></div></div>
<div class="ttc" id="struct__rotator_html_a88068d1cd476b7a52bbc400c77e81d9a"><div class="ttname"><a href="struct__rotator.html#a88068d1cd476b7a52bbc400c77e81d9a">_rotator::switch_el</a></div><div class="ttdeci">bool switch_el</div><div class="ttdoc">End-stop vales. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00048">globals.h:48</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_afe48c9319f61788ed4622597bdaf17ab"><div class="ttname"><a href="stepper__motor__controller_8ino.html#afe48c9319f61788ed4622597bdaf17ab">homing</a></div><div class="ttdeci">enum _rotator_error homing(int32_t seek_az, int32_t seek_el)</div><div class="ttdoc">Move both axis with one direction in order to find home position, end-stop switches. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00154">stepper_motor_controller.ino:154</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ac2cd96d53dd3ba6407db6766c3d92b26"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ac2cd96d53dd3ba6407db6766c3d92b26">MAX_SPEED</a></div><div class="ttdeci">#define MAX_SPEED</div><div class="ttdoc">In steps/s, consider the microstep. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00029">stepper_motor_controller.ino:29</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_aa9fdf484ccfc3264b1505135c801aadc"><div class="ttname"><a href="stepper__motor__controller_8ino.html#aa9fdf484ccfc3264b1505135c801aadc">DEFAULT_HOME_STATE</a></div><div class="ttdeci">#define DEFAULT_HOME_STATE</div><div class="ttdoc">Change to LOW according to Home sensor. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00036">stepper_motor_controller.ino:36</a></div></div>
<div class="ttc" id="globals_8h_html_a455fc53a09c638322a14f309a295e7f1a83cf4d6b86174dccaf2a83810b4f83b6"><div class="ttname"><a href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1a83cf4d6b86174dccaf2a83810b4f83b6">homing_error</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00021">globals.h:21</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_a52eb32b92f0d0d1fdfc59a83e22d389d"><div class="ttname"><a href="rotator__pins_8h.html#a52eb32b92f0d0d1fdfc59a83e22d389d">M1IN1</a></div><div class="ttdeci">#define M1IN1</div><div class="ttdoc">Motor 1 PWM pin. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00013">rotator_pins.h:13</a></div></div>
<div class="ttc" id="classwdt__timer_html_a1be743743ff4d19d726a45c2d49fbada"><div class="ttname"><a href="classwdt__timer.html#a1be743743ff4d19d726a45c2d49fbada">wdt_timer::watchdog_reset</a></div><div class="ttdeci">void watchdog_reset()</div><div class="ttdoc">Reset the watchdog timer. </div><div class="ttdef"><b>Definition:</b> <a href="watchdog_8h_source.html#l00045">watchdog.h:45</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ac9a4325f61d2c3b2f45582cc3234df41"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ac9a4325f61d2c3b2f45582cc3234df41">stepper_az</a></div><div class="ttdeci">AccelStepper stepper_az(1, M1IN1, M1IN2)</div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a7e8b3c8482e593df0ace933ad3de22ee"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a7e8b3c8482e593df0ace933ad3de22ee">RATIO</a></div><div class="ttdeci">#define RATIO</div><div class="ttdoc">Gear ratio of rotator gear box. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00026">stepper_motor_controller.ino:26</a></div></div>
<div class="ttc" id="classeasycomm_html_a7db30a0f3a754dc281cbedab461d76f6"><div class="ttname"><a href="classeasycomm.html#a7db30a0f3a754dc281cbedab461d76f6">easycomm::easycomm_init</a></div><div class="ttdeci">void easycomm_init()</div><div class="ttdoc">Initialize the RS485 bus. </div><div class="ttdef"><b>Definition:</b> <a href="easycomm_8h_source.html#l00039">easycomm.h:39</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_a157fe9dc9b50d6f912b57b3422848700"><div class="ttname"><a href="rotator__pins_8h.html#a157fe9dc9b50d6f912b57b3422848700">M1IN2</a></div><div class="ttdeci">#define M1IN2</div><div class="ttdoc">Motor 1 PWM pin. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00014">rotator_pins.h:14</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ac81f1607c784261cee0a9759a35f18ff"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ac81f1607c784261cee0a9759a35f18ff">MAX_M1_ANGLE</a></div><div class="ttdeci">#define MAX_M1_ANGLE</div><div class="ttdoc">Maximum angle of azimuth. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00033">stepper_motor_controller.ino:33</a></div></div>
<div class="ttc" id="struct__rotator_html_adf96afc711bf7075748f043b1b656311"><div class="ttname"><a href="struct__rotator.html#adf96afc711bf7075748f043b1b656311">_rotator::homing_flag</a></div><div class="ttdeci">bool homing_flag</div><div class="ttdoc">Homing flag. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00044">globals.h:44</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_ae50506f007819f8841a2ead6e8ddb509"><div class="ttname"><a href="stepper__motor__controller_8ino.html#ae50506f007819f8841a2ead6e8ddb509">stepper_el</a></div><div class="ttdeci">AccelStepper stepper_el(1, M2IN1, M2IN2)</div></div>
<div class="ttc" id="classwdt__timer_html_a4463b57c8af9b89797cb222c745c0355"><div class="ttname"><a href="classwdt__timer.html#a4463b57c8af9b89797cb222c745c0355">wdt_timer::watchdog_init</a></div><div class="ttdeci">void watchdog_init()</div><div class="ttdoc">Initialize watchdog timer to 2sec time out and to set up interrupt routine. </div><div class="ttdef"><b>Definition:</b> <a href="watchdog_8h_source.html#l00032">watchdog.h:32</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a8d74466a27b92f353f6e74a079bb228d"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a8d74466a27b92f353f6e74a079bb228d">step2deg</a></div><div class="ttdeci">float step2deg(int32_t step)</div><div class="ttdoc">Convert steps to degrees according to step/revolution, rotator gear box ratio and microstep...</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00224">stepper_motor_controller.ino:224</a></div></div>
<div class="ttc" id="struct__rotator_html_a86308cdfcd35e4a153476bf09869a981"><div class="ttname"><a href="struct__rotator.html#a86308cdfcd35e4a153476bf09869a981">_rotator::control_mode</a></div><div class="ttdeci">enum _control_mode control_mode</div><div class="ttdoc">Control mode. </div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00043">globals.h:43</a></div></div>
<div class="ttc" id="rotator__pins_8h_html_a276a7c4ba0f813d53715e2ec2595d906"><div class="ttname"><a href="rotator__pins_8h.html#a276a7c4ba0f813d53715e2ec2595d906">SW2</a></div><div class="ttdeci">#define SW2</div><div class="ttdoc">Digital input, to read the status of end-stop for motor 2. </div><div class="ttdef"><b>Definition:</b> <a href="rotator__pins_8h_source.html#l00026">rotator_pins.h:26</a></div></div>
<div class="ttc" id="classeasycomm_html"><div class="ttname"><a href="classeasycomm.html">easycomm</a></div><div class="ttdoc">Class that functions for easycomm 3 implementation. </div><div class="ttdef"><b>Definition:</b> <a href="easycomm_8h_source.html#l00031">easycomm.h:31</a></div></div>
<div class="ttc" id="globals_8h_html_ae09bc16eee2b545dd6a98d700c3e3501ad606e435413ea0944dd00d49e901e4ed"><div class="ttname"><a href="globals_8h.html#ae09bc16eee2b545dd6a98d700c3e3501ad606e435413ea0944dd00d49e901e4ed">error</a></div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00017">globals.h:17</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_acaea33d85a46b9afdd404f6a45da8470"><div class="ttname"><a href="stepper__motor__controller_8ino.html#acaea33d85a46b9afdd404f6a45da8470">MAX_M2_ANGLE</a></div><div class="ttdeci">#define MAX_M2_ANGLE</div><div class="ttdoc">Maximum angle of elevation. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00035">stepper_motor_controller.ino:35</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_a58daa60c7e280af9449f3cc46097652b"><div class="ttname"><a href="stepper__motor__controller_8ino.html#a58daa60c7e280af9449f3cc46097652b">MAX_ACCELERATION</a></div><div class="ttdeci">#define MAX_ACCELERATION</div><div class="ttdoc">In steps/s^2, consider the microstep. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00030">stepper_motor_controller.ino:30</a></div></div>
<div class="ttc" id="globals_8h_html_a455fc53a09c638322a14f309a295e7f1"><div class="ttname"><a href="globals_8h.html#a455fc53a09c638322a14f309a295e7f1">_rotator_error</a></div><div class="ttdeci">_rotator_error</div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00020">globals.h:20</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_aa21a88a61f63525bb1db8401772e7f70"><div class="ttname"><a href="stepper__motor__controller_8ino.html#aa21a88a61f63525bb1db8401772e7f70">wdt</a></div><div class="ttdeci">wdt_timer wdt</div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00053">stepper_motor_controller.ino:53</a></div></div>
<div class="ttc" id="classendstop_html_a530a60aaf81bd5022e56df71c194dfbc"><div class="ttname"><a href="classendstop.html#a530a60aaf81bd5022e56df71c194dfbc">endstop::get_state</a></div><div class="ttdeci">bool get_state()</div><div class="ttdoc">Get the state of end-stop. </div><div class="ttdef"><b>Definition:</b> <a href="endstop_8h_source.html#l00045">endstop.h:45</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_acf4a8c328d7d16e349494adf938d575c"><div class="ttname"><a href="stepper__motor__controller_8ino.html#acf4a8c328d7d16e349494adf938d575c">HOME_DELAY</a></div><div class="ttdeci">#define HOME_DELAY</div><div class="ttdoc">Time for homing Deceleration in millisecond. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00037">stepper_motor_controller.ino:37</a></div></div>
<div class="ttc" id="globals_8h_html_ade92ac8f94e642ce7708250d1235ae85"><div class="ttname"><a href="globals_8h.html#ade92ac8f94e642ce7708250d1235ae85">control_el</a></div><div class="ttdeci">_control control_el</div><div class="ttdef"><b>Definition:</b> <a href="globals_8h_source.html#l00054">globals.h:54</a></div></div>
<div class="ttc" id="stepper__motor__controller_8ino_html_abc0e9de1ad11261774993fbad495209e"><div class="ttname"><a href="stepper__motor__controller_8ino.html#abc0e9de1ad11261774993fbad495209e">SPR</a></div><div class="ttdeci">#define SPR</div><div class="ttdoc">Step Per Revolution, consider the microstep. </div><div class="ttdef"><b>Definition:</b> <a href="stepper__motor__controller_8ino_source.html#l00031">stepper_motor_controller.ino:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>