ert_main_c.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script type="text/javascript" src="./js/coder_app.js"></script>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="./rtwreport_utils.js"></script>
  7. <script type="text/javascript" src="./rtwannotate.js"></script>
  8. <link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
  9. </head>
  10. <body onload="srcFileOnload();">
  11. <pre id="code">
  12. <table class="code" id="codeTbl">
  13. <tr name="1" id="1">
  14. <td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
  15. <tr name="2" id="2">
  16. <td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * File: ert_main.c</span></td></tr>
  17. <tr name="3" id="3">
  18. <td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
  19. <tr name="4" id="4">
  20. <td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Code generated for Simulink model 'PMSM_Controller'.</span></td></tr>
  21. <tr name="5" id="5">
  22. <td><a id="l5" class='ln'>5</a></td><td><span class="ct"> *</span></td></tr>
  23. <tr name="6" id="6">
  24. <td><a id="l6" class='ln'>6</a></td><td><span class="ct"> * Model version : 1.885</span></td></tr>
  25. <tr name="7" id="7">
  26. <td><a id="l7" class='ln'>7</a></td><td><span class="ct"> * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020</span></td></tr>
  27. <tr name="8" id="8">
  28. <td><a id="l8" class='ln'>8</a></td><td><span class="ct"> * C/C++ source code generated on : Sat Jan 8 15:44:11 2022</span></td></tr>
  29. <tr name="9" id="9">
  30. <td><a id="l9" class='ln'>9</a></td><td><span class="ct"> *</span></td></tr>
  31. <tr name="10" id="10">
  32. <td><a id="l10" class='ln'>10</a></td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr>
  33. <tr name="11" id="11">
  34. <td><a id="l11" class='ln'>11</a></td><td><span class="ct"> * Embedded hardware selection: ARM Compatible-&gt;ARM Cortex-M</span></td></tr>
  35. <tr name="12" id="12">
  36. <td><a id="l12" class='ln'>12</a></td><td><span class="ct"> * Code generation objectives:</span></td></tr>
  37. <tr name="13" id="13">
  38. <td><a id="l13" class='ln'>13</a></td><td><span class="ct"> * 1. Execution efficiency</span></td></tr>
  39. <tr name="14" id="14">
  40. <td><a id="l14" class='ln'>14</a></td><td><span class="ct"> * 2. RAM efficiency</span></td></tr>
  41. <tr name="15" id="15">
  42. <td><a id="l15" class='ln'>15</a></td><td><span class="ct"> * Validation result: Not run</span></td></tr>
  43. <tr name="16" id="16">
  44. <td><a id="l16" class='ln'>16</a></td><td><span class="ct"> */</span></td></tr>
  45. <tr name="17" id="17">
  46. <td><a id="l17" class='ln'>17</a></td><td></td></tr>
  47. <tr name="18" id="18">
  48. <td><a id="l18" class='ln'>18</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
  49. <tr name="19" id="19">
  50. <td><a id="l19" class='ln'>19</a></td><td><span class="pp">#include &lt;stdio.h&gt;</span> <span class="ct">/* This ert_main.c example uses printf/fflush */</span></td></tr>
  51. <tr name="20" id="20">
  52. <td><a id="l20" class='ln'>20</a></td><td><span class="pp">#include "PMSM_Controller.h"</span> <span class="ct">/* Model's header file */</span></td></tr>
  53. <tr name="21" id="21">
  54. <td><a id="l21" class='ln'>21</a></td><td><span class="pp">#include "rtwtypes.h"</span></td></tr>
  55. <tr name="22" id="22">
  56. <td><a id="l22" class='ln'>22</a></td><td></td></tr>
  57. <tr name="23" id="23">
  58. <td><a id="l23" class='ln'>23</a></td><td><span class="kw">static</span> <a id="23c8" class="tk">RT_MODEL</a> <a id="23c17" class="tk">rtM_</a>;</td></tr>
  59. <tr name="24" id="24">
  60. <td><a id="l24" class='ln'>24</a></td><td><span class="kw">static</span> <a id="24c8" class="tk">RT_MODEL</a> <a id="24c17" class="tk">*</a><span class="kw">const</span> <a id="24c24" class="tk">rtMPtr</a> = <a id="24c33" class="tk">&amp;</a><a id="24c34" class="tk">rtM_</a>; <span class="ct">/* Real-time model */</span></td></tr>
  61. <tr name="25" id="25">
  62. <td><a id="l25" class='ln'>25</a></td><td><span class="kw">static</span> <a id="25c8" class="tk">DW</a> <a id="25c11" class="tk">rtDW</a>; <span class="ct">/* Observable states */</span></td></tr>
  63. <tr name="26" id="26">
  64. <td><a id="l26" class='ln'>26</a></td><td></td></tr>
  65. <tr name="27" id="27">
  66. <td><a id="l27" class='ln'>27</a></td><td><span class="ct">/* '&lt;Root&gt;/Vdc' */</span></td></tr>
  67. <tr name="28" id="28">
  68. <td><a id="l28" class='ln'>28</a></td><td><span class="kw">static</span> <a id="28c8" class="tk">int16_T</a> <a id="28c16" class="tk">rtU_Vdc</a>;</td></tr>
  69. <tr name="29" id="29">
  70. <td><a id="l29" class='ln'>29</a></td><td></td></tr>
  71. <tr name="30" id="30">
  72. <td><a id="l30" class='ln'>30</a></td><td><span class="ct">/* '&lt;Root&gt;/Ts' */</span></td></tr>
  73. <tr name="31" id="31">
  74. <td><a id="l31" class='ln'>31</a></td><td><span class="kw">static</span> <a id="31c8" class="tk">uint16_T</a> <a id="31c17" class="tk">rtU_Ts</a>;</td></tr>
  75. <tr name="32" id="32">
  76. <td><a id="l32" class='ln'>32</a></td><td></td></tr>
  77. <tr name="33" id="33">
  78. <td><a id="l33" class='ln'>33</a></td><td><span class="ct">/* '&lt;Root&gt;/adc_a' */</span></td></tr>
  79. <tr name="34" id="34">
  80. <td><a id="l34" class='ln'>34</a></td><td><span class="kw">static</span> <a id="34c8" class="tk">int16_T</a> <a id="34c16" class="tk">rtU_adc_a</a>;</td></tr>
  81. <tr name="35" id="35">
  82. <td><a id="l35" class='ln'>35</a></td><td></td></tr>
  83. <tr name="36" id="36">
  84. <td><a id="l36" class='ln'>36</a></td><td><span class="ct">/* '&lt;Root&gt;/adc_b' */</span></td></tr>
  85. <tr name="37" id="37">
  86. <td><a id="l37" class='ln'>37</a></td><td><span class="kw">static</span> <a id="37c8" class="tk">int16_T</a> <a id="37c16" class="tk">rtU_adc_b</a>;</td></tr>
  87. <tr name="38" id="38">
  88. <td><a id="l38" class='ln'>38</a></td><td></td></tr>
  89. <tr name="39" id="39">
  90. <td><a id="l39" class='ln'>39</a></td><td><span class="ct">/* '&lt;Root&gt;/rotor_angle' */</span></td></tr>
  91. <tr name="40" id="40">
  92. <td><a id="l40" class='ln'>40</a></td><td><span class="kw">static</span> <a id="40c8" class="tk">real_T</a> <a id="40c15" class="tk">rtU_rotor_angle</a>;</td></tr>
  93. <tr name="41" id="41">
  94. <td><a id="l41" class='ln'>41</a></td><td></td></tr>
  95. <tr name="42" id="42">
  96. <td><a id="l42" class='ln'>42</a></td><td><span class="ct">/* '&lt;Root&gt;/rotor_speed' */</span></td></tr>
  97. <tr name="43" id="43">
  98. <td><a id="l43" class='ln'>43</a></td><td><span class="kw">static</span> <a id="43c8" class="tk">int16_T</a> <a id="43c16" class="tk">rtU_rotor_speed</a>;</td></tr>
  99. <tr name="44" id="44">
  100. <td><a id="l44" class='ln'>44</a></td><td></td></tr>
  101. <tr name="45" id="45">
  102. <td><a id="l45" class='ln'>45</a></td><td><span class="ct">/* '&lt;Root&gt;/input_target' */</span></td></tr>
  103. <tr name="46" id="46">
  104. <td><a id="l46" class='ln'>46</a></td><td><span class="kw">static</span> <a id="46c8" class="tk">int16_T</a> <a id="46c16" class="tk">rtU_input_target</a>;</td></tr>
  105. <tr name="47" id="47">
  106. <td><a id="l47" class='ln'>47</a></td><td></td></tr>
  107. <tr name="48" id="48">
  108. <td><a id="l48" class='ln'>48</a></td><td><span class="ct">/* '&lt;Root&gt;/hall_a' */</span></td></tr>
  109. <tr name="49" id="49">
  110. <td><a id="l49" class='ln'>49</a></td><td><span class="kw">static</span> <a id="49c8" class="tk">uint8_T</a> <a id="49c16" class="tk">rtU_hall_a</a>;</td></tr>
  111. <tr name="50" id="50">
  112. <td><a id="l50" class='ln'>50</a></td><td></td></tr>
  113. <tr name="51" id="51">
  114. <td><a id="l51" class='ln'>51</a></td><td><span class="ct">/* '&lt;Root&gt;/hall_b' */</span></td></tr>
  115. <tr name="52" id="52">
  116. <td><a id="l52" class='ln'>52</a></td><td><span class="kw">static</span> <a id="52c8" class="tk">uint8_T</a> <a id="52c16" class="tk">rtU_hall_b</a>;</td></tr>
  117. <tr name="53" id="53">
  118. <td><a id="l53" class='ln'>53</a></td><td></td></tr>
  119. <tr name="54" id="54">
  120. <td><a id="l54" class='ln'>54</a></td><td><span class="ct">/* '&lt;Root&gt;/hall_c' */</span></td></tr>
  121. <tr name="55" id="55">
  122. <td><a id="l55" class='ln'>55</a></td><td><span class="kw">static</span> <a id="55c8" class="tk">uint8_T</a> <a id="55c16" class="tk">rtU_hall_c</a>;</td></tr>
  123. <tr name="56" id="56">
  124. <td><a id="l56" class='ln'>56</a></td><td></td></tr>
  125. <tr name="57" id="57">
  126. <td><a id="l57" class='ln'>57</a></td><td><span class="ct">/* '&lt;Root&gt;/hw_count' */</span></td></tr>
  127. <tr name="58" id="58">
  128. <td><a id="l58" class='ln'>58</a></td><td><span class="kw">static</span> <a id="58c8" class="tk">uint32_T</a> <a id="58c17" class="tk">rtU_hw_count</a>;</td></tr>
  129. <tr name="59" id="59">
  130. <td><a id="l59" class='ln'>59</a></td><td></td></tr>
  131. <tr name="60" id="60">
  132. <td><a id="l60" class='ln'>60</a></td><td><span class="ct">/* '&lt;Root&gt;/b_motor_enable' */</span></td></tr>
  133. <tr name="61" id="61">
  134. <td><a id="l61" class='ln'>61</a></td><td><span class="kw">static</span> <a id="61c8" class="tk">boolean_T</a> <a id="61c18" class="tk">rtU_b_motor_enable</a>;</td></tr>
  135. <tr name="62" id="62">
  136. <td><a id="l62" class='ln'>62</a></td><td></td></tr>
  137. <tr name="63" id="63">
  138. <td><a id="l63" class='ln'>63</a></td><td><span class="ct">/* '&lt;Root&gt;/b_cruise_enable' */</span></td></tr>
  139. <tr name="64" id="64">
  140. <td><a id="l64" class='ln'>64</a></td><td><span class="kw">static</span> <a id="64c8" class="tk">boolean_T</a> <a id="64c18" class="tk">rtU_b_cruise_enable</a>;</td></tr>
  141. <tr name="65" id="65">
  142. <td><a id="l65" class='ln'>65</a></td><td></td></tr>
  143. <tr name="66" id="66">
  144. <td><a id="l66" class='ln'>66</a></td><td><span class="ct">/* '&lt;Root&gt;/n_ctrl_type' */</span></td></tr>
  145. <tr name="67" id="67">
  146. <td><a id="l67" class='ln'>67</a></td><td><span class="kw">static</span> <a id="67c8" class="tk">uint8_T</a> <a id="67c16" class="tk">rtU_n_ctrl_type</a>;</td></tr>
  147. <tr name="68" id="68">
  148. <td><a id="l68" class='ln'>68</a></td><td></td></tr>
  149. <tr name="69" id="69">
  150. <td><a id="l69" class='ln'>69</a></td><td><span class="ct">/* '&lt;Root&gt;/pwm_counts' */</span></td></tr>
  151. <tr name="70" id="70">
  152. <td><a id="l70" class='ln'>70</a></td><td><span class="kw">static</span> <a id="70c8" class="tk">uint16_T</a> <a id="70c17" class="tk">rtY_pwm_counts</a>[8];</td></tr>
  153. <tr name="71" id="71">
  154. <td><a id="l71" class='ln'>71</a></td><td></td></tr>
  155. <tr name="72" id="72">
  156. <td><a id="l72" class='ln'>72</a></td><td><span class="ct">/* '&lt;Root&gt;/sector' */</span></td></tr>
  157. <tr name="73" id="73">
  158. <td><a id="l73" class='ln'>73</a></td><td><span class="kw">static</span> <a id="73c8" class="tk">uint8_T</a> <a id="73c16" class="tk">rtY_sector</a>;</td></tr>
  159. <tr name="74" id="74">
  160. <td><a id="l74" class='ln'>74</a></td><td></td></tr>
  161. <tr name="75" id="75">
  162. <td><a id="l75" class='ln'>75</a></td><td><span class="ct">/*</span></td></tr>
  163. <tr name="76" id="76">
  164. <td><a id="l76" class='ln'>76</a></td><td><span class="ct"> * Associating rt_OneStep with a real-time clock or interrupt service routine</span></td></tr>
  165. <tr name="77" id="77">
  166. <td><a id="l77" class='ln'>77</a></td><td><span class="ct"> * is what makes the generated code "real-time". The function rt_OneStep is</span></td></tr>
  167. <tr name="78" id="78">
  168. <td><a id="l78" class='ln'>78</a></td><td><span class="ct"> * always associated with the base rate of the model. Subrates are managed</span></td></tr>
  169. <tr name="79" id="79">
  170. <td><a id="l79" class='ln'>79</a></td><td><span class="ct"> * by the base rate from inside the generated code. Enabling/disabling</span></td></tr>
  171. <tr name="80" id="80">
  172. <td><a id="l80" class='ln'>80</a></td><td><span class="ct"> * interrupts and floating point context switches are target specific. This</span></td></tr>
  173. <tr name="81" id="81">
  174. <td><a id="l81" class='ln'>81</a></td><td><span class="ct"> * example code indicates where these should take place relative to executing</span></td></tr>
  175. <tr name="82" id="82">
  176. <td><a id="l82" class='ln'>82</a></td><td><span class="ct"> * the generated code step function. Overrun behavior should be tailored to</span></td></tr>
  177. <tr name="83" id="83">
  178. <td><a id="l83" class='ln'>83</a></td><td><span class="ct"> * your application needs. This example simply sets an error status in the</span></td></tr>
  179. <tr name="84" id="84">
  180. <td><a id="l84" class='ln'>84</a></td><td><span class="ct"> * real-time model and returns from rt_OneStep.</span></td></tr>
  181. <tr name="85" id="85">
  182. <td><a id="l85" class='ln'>85</a></td><td><span class="ct"> */</span></td></tr>
  183. <tr name="86" id="86">
  184. <td><a id="l86" class='ln'>86</a></td><td><span class="kw">void</span> <a id="86c6" class="tk">rt_OneStep</a>(<a id="86c17" class="tk">RT_MODEL</a> <a id="86c26" class="tk">*</a><span class="kw">const</span> <a id="86c33" class="tk">rtM</a>);</td></tr>
  185. <tr name="87" id="87">
  186. <td><a id="l87" class='ln'>87</a></td><td><span class="kw">void</span> <a id="87c6" class="tk">rt_OneStep</a>(<a id="87c17" class="tk">RT_MODEL</a> <a id="87c26" class="tk">*</a><span class="kw">const</span> <a id="87c33" class="tk">rtM</a>)</td></tr>
  187. <tr name="88" id="88">
  188. <td><a id="l88" class='ln'>88</a></td><td><span class="br">{</span></td></tr>
  189. <tr name="89" id="89">
  190. <td><a id="l89" class='ln'>89</a></td><td> <span class="kw">static</span> <a id="89c10" class="tk">boolean_T</a> <a id="89c20" class="tk">OverrunFlag</a> = false;</td></tr>
  191. <tr name="90" id="90">
  192. <td><a id="l90" class='ln'>90</a></td><td></td></tr>
  193. <tr name="91" id="91">
  194. <td><a id="l91" class='ln'>91</a></td><td> <span class="ct">/* Disable interrupts here */</span></td></tr>
  195. <tr name="92" id="92">
  196. <td><a id="l92" class='ln'>92</a></td><td></td></tr>
  197. <tr name="93" id="93">
  198. <td><a id="l93" class='ln'>93</a></td><td> <span class="ct">/* Check for overrun */</span></td></tr>
  199. <tr name="94" id="94">
  200. <td><a id="l94" class='ln'>94</a></td><td> <span class="kw">if</span> (<a id="94c7" class="tk">OverrunFlag</a>) <span class="br">{</span></td></tr>
  201. <tr name="95" id="95">
  202. <td><a id="l95" class='ln'>95</a></td><td> <a id="95c5" class="tk">rtmSetErrorStatus</a>(<a id="95c23" class="tk">rtM</a>, "Overrun");</td></tr>
  203. <tr name="96" id="96">
  204. <td><a id="l96" class='ln'>96</a></td><td> <span class="kw">return</span>;</td></tr>
  205. <tr name="97" id="97">
  206. <td><a id="l97" class='ln'>97</a></td><td> <span class="br">}</span></td></tr>
  207. <tr name="98" id="98">
  208. <td><a id="l98" class='ln'>98</a></td><td></td></tr>
  209. <tr name="99" id="99">
  210. <td><a id="l99" class='ln'>99</a></td><td> <a id="99c3" class="tk">OverrunFlag</a> = true;</td></tr>
  211. <tr name="100" id="100">
  212. <td><a id="l100" class='ln'>100</a></td><td></td></tr>
  213. <tr name="101" id="101">
  214. <td><a id="l101" class='ln'>101</a></td><td> <span class="ct">/* Save FPU context here (if necessary) */</span></td></tr>
  215. <tr name="102" id="102">
  216. <td><a id="l102" class='ln'>102</a></td><td> <span class="ct">/* Re-enable timer or interrupt here */</span></td></tr>
  217. <tr name="103" id="103">
  218. <td><a id="l103" class='ln'>103</a></td><td> <span class="ct">/* Set model inputs here */</span></td></tr>
  219. <tr name="104" id="104">
  220. <td><a id="l104" class='ln'>104</a></td><td></td></tr>
  221. <tr name="105" id="105">
  222. <td><a id="l105" class='ln'>105</a></td><td> <span class="ct">/* Step the model for base rate */</span></td></tr>
  223. <tr name="106" id="106">
  224. <td><a id="l106" class='ln'>106</a></td><td> <a id="106c3" class="tk">PMSM_Controller_step</a>(<a id="106c24" class="tk">rtM</a>, <a id="106c29" class="tk">rtU_Vdc</a>, <a id="106c38" class="tk">rtU_Ts</a>, <a id="106c46" class="tk">rtU_adc_a</a>, <a id="106c57" class="tk">rtU_adc_b</a>,</td></tr>
  225. <tr name="107" id="107">
  226. <td><a id="l107" class='ln'>107</a></td><td> <a id="107c24" class="tk">rtU_rotor_angle</a>, <a id="107c41" class="tk">rtU_rotor_speed</a>, <a id="107c58" class="tk">rtU_input_target</a>,</td></tr>
  227. <tr name="108" id="108">
  228. <td><a id="l108" class='ln'>108</a></td><td> <a id="108c24" class="tk">rtY_pwm_counts</a>, <a id="108c40" class="tk">&amp;</a><a id="108c41" class="tk">rtY_sector</a>);</td></tr>
  229. <tr name="109" id="109">
  230. <td><a id="l109" class='ln'>109</a></td><td></td></tr>
  231. <tr name="110" id="110">
  232. <td><a id="l110" class='ln'>110</a></td><td> <span class="ct">/* Get model outputs here */</span></td></tr>
  233. <tr name="111" id="111">
  234. <td><a id="l111" class='ln'>111</a></td><td></td></tr>
  235. <tr name="112" id="112">
  236. <td><a id="l112" class='ln'>112</a></td><td> <span class="ct">/* Indicate task complete */</span></td></tr>
  237. <tr name="113" id="113">
  238. <td><a id="l113" class='ln'>113</a></td><td> <a id="113c3" class="tk">OverrunFlag</a> = false;</td></tr>
  239. <tr name="114" id="114">
  240. <td><a id="l114" class='ln'>114</a></td><td></td></tr>
  241. <tr name="115" id="115">
  242. <td><a id="l115" class='ln'>115</a></td><td> <span class="ct">/* Disable interrupts here */</span></td></tr>
  243. <tr name="116" id="116">
  244. <td><a id="l116" class='ln'>116</a></td><td> <span class="ct">/* Restore FPU context here (if necessary) */</span></td></tr>
  245. <tr name="117" id="117">
  246. <td><a id="l117" class='ln'>117</a></td><td> <span class="ct">/* Enable interrupts here */</span></td></tr>
  247. <tr name="118" id="118">
  248. <td><a id="l118" class='ln'>118</a></td><td><span class="br">}</span></td></tr>
  249. <tr name="119" id="119">
  250. <td><a id="l119" class='ln'>119</a></td><td></td></tr>
  251. <tr name="120" id="120">
  252. <td><a id="l120" class='ln'>120</a></td><td><span class="ct">/*</span></td></tr>
  253. <tr name="121" id="121">
  254. <td><a id="l121" class='ln'>121</a></td><td><span class="ct"> * The example "main" function illustrates what is required by your</span></td></tr>
  255. <tr name="122" id="122">
  256. <td><a id="l122" class='ln'>122</a></td><td><span class="ct"> * application code to initialize, execute, and terminate the generated code.</span></td></tr>
  257. <tr name="123" id="123">
  258. <td><a id="l123" class='ln'>123</a></td><td><span class="ct"> * Attaching rt_OneStep to a real-time clock is target specific. This example</span></td></tr>
  259. <tr name="124" id="124">
  260. <td><a id="l124" class='ln'>124</a></td><td><span class="ct"> * illustrates how you do this relative to initializing the model.</span></td></tr>
  261. <tr name="125" id="125">
  262. <td><a id="l125" class='ln'>125</a></td><td><span class="ct"> */</span></td></tr>
  263. <tr name="126" id="126">
  264. <td><a id="l126" class='ln'>126</a></td><td><a id="126c1" class="tk">int_T</a> <a id="126c7" class="tk">main</a>(<a id="126c12" class="tk">int_T</a> <a id="126c18" class="tk">argc</a>, <span class="kw">const</span> <span class="kw">char</span> <a id="126c35" class="tk">*</a><a id="126c36" class="tk">argv</a>[])</td></tr>
  265. <tr name="127" id="127">
  266. <td><a id="l127" class='ln'>127</a></td><td><span class="br">{</span></td></tr>
  267. <tr name="128" id="128">
  268. <td><a id="l128" class='ln'>128</a></td><td> <a id="128c3" class="tk">RT_MODEL</a> <a id="128c12" class="tk">*</a><span class="kw">const</span> <a id="128c19" class="tk">rtM</a> = <a id="128c25" class="tk">rtMPtr</a>;</td></tr>
  269. <tr name="129" id="129">
  270. <td><a id="l129" class='ln'>129</a></td><td></td></tr>
  271. <tr name="130" id="130">
  272. <td><a id="l130" class='ln'>130</a></td><td> <span class="ct">/* Unused arguments */</span></td></tr>
  273. <tr name="131" id="131">
  274. <td><a id="l131" class='ln'>131</a></td><td> (<span class="kw">void</span>)(<a id="131c10" class="tk">argc</a>);</td></tr>
  275. <tr name="132" id="132">
  276. <td><a id="l132" class='ln'>132</a></td><td> (<span class="kw">void</span>)(<a id="132c10" class="tk">argv</a>);</td></tr>
  277. <tr name="133" id="133">
  278. <td><a id="l133" class='ln'>133</a></td><td></td></tr>
  279. <tr name="134" id="134">
  280. <td><a id="l134" class='ln'>134</a></td><td> <span class="ct">/* Pack model data into RTM */</span></td></tr>
  281. <tr name="135" id="135">
  282. <td><a id="l135" class='ln'>135</a></td><td> <a id="135c3" class="tk">rtM</a>-&gt;<a id="135c8" class="tk">dwork</a> = <a id="135c16" class="tk">&amp;</a><a id="135c17" class="tk">rtDW</a>;</td></tr>
  283. <tr name="136" id="136">
  284. <td><a id="l136" class='ln'>136</a></td><td></td></tr>
  285. <tr name="137" id="137">
  286. <td><a id="l137" class='ln'>137</a></td><td> <span class="ct">/* Initialize model */</span></td></tr>
  287. <tr name="138" id="138">
  288. <td><a id="l138" class='ln'>138</a></td><td> <a id="138c3" class="tk">PMSM_Controller_initialize</a>(<a id="138c30" class="tk">rtM</a>);</td></tr>
  289. <tr name="139" id="139">
  290. <td><a id="l139" class='ln'>139</a></td><td></td></tr>
  291. <tr name="140" id="140">
  292. <td><a id="l140" class='ln'>140</a></td><td> <span class="ct">/* Attach rt_OneStep to a timer or interrupt service routine with</span></td></tr>
  293. <tr name="141" id="141">
  294. <td><a id="l141" class='ln'>141</a></td><td><span class="ct"> * period 6.2E-6 seconds (the model's base sample time) here. The</span></td></tr>
  295. <tr name="142" id="142">
  296. <td><a id="l142" class='ln'>142</a></td><td><span class="ct"> * call syntax for rt_OneStep is</span></td></tr>
  297. <tr name="143" id="143">
  298. <td><a id="l143" class='ln'>143</a></td><td><span class="ct"> *</span></td></tr>
  299. <tr name="144" id="144">
  300. <td><a id="l144" class='ln'>144</a></td><td><span class="ct"> * rt_OneStep(rtM);</span></td></tr>
  301. <tr name="145" id="145">
  302. <td><a id="l145" class='ln'>145</a></td><td><span class="ct"> */</span></td></tr>
  303. <tr name="146" id="146">
  304. <td><a id="l146" class='ln'>146</a></td><td> <a id="146c3" class="tk">printf</a>("Warning: The simulation will run forever. "</td></tr>
  305. <tr name="147" id="147">
  306. <td><a id="l147" class='ln'>147</a></td><td> "Generated ERT main won't simulate model step behavior. "</td></tr>
  307. <tr name="148" id="148">
  308. <td><a id="l148" class='ln'>148</a></td><td> "To change this behavior select the 'MAT-file logging' option.\n");</td></tr>
  309. <tr name="149" id="149">
  310. <td><a id="l149" class='ln'>149</a></td><td> <a id="149c3" class="tk">fflush</a>((<a id="149c11" class="tk">NULL</a>));</td></tr>
  311. <tr name="150" id="150">
  312. <td><a id="l150" class='ln'>150</a></td><td> <span class="kw">while</span> (<a id="150c10" class="tk">rtmGetErrorStatus</a>(<a id="150c28" class="tk">rtM</a>) <a id="150c33" class="tk">==</a> (<a id="150c37" class="tk">NULL</a>)) <span class="br">{</span></td></tr>
  313. <tr name="151" id="151">
  314. <td><a id="l151" class='ln'>151</a></td><td> <span class="ct">/* Perform other application tasks here */</span></td></tr>
  315. <tr name="152" id="152">
  316. <td><a id="l152" class='ln'>152</a></td><td> <span class="br">}</span></td></tr>
  317. <tr name="153" id="153">
  318. <td><a id="l153" class='ln'>153</a></td><td></td></tr>
  319. <tr name="154" id="154">
  320. <td><a id="l154" class='ln'>154</a></td><td> <span class="ct">/* Disable rt_OneStep() here */</span></td></tr>
  321. <tr name="155" id="155">
  322. <td><a id="l155" class='ln'>155</a></td><td> <span class="kw">return</span> 0;</td></tr>
  323. <tr name="156" id="156">
  324. <td><a id="l156" class='ln'>156</a></td><td><span class="br">}</span></td></tr>
  325. <tr name="157" id="157">
  326. <td><a id="l157" class='ln'>157</a></td><td></td></tr>
  327. <tr name="158" id="158">
  328. <td><a id="l158" class='ln'>158</a></td><td><span class="ct">/*</span></td></tr>
  329. <tr name="159" id="159">
  330. <td><a id="l159" class='ln'>159</a></td><td><span class="ct"> * File trailer for generated code.</span></td></tr>
  331. <tr name="160" id="160">
  332. <td><a id="l160" class='ln'>160</a></td><td><span class="ct"> *</span></td></tr>
  333. <tr name="161" id="161">
  334. <td><a id="l161" class='ln'>161</a></td><td><span class="ct"> * [EOF]</span></td></tr>
  335. <tr name="162" id="162">
  336. <td><a id="l162" class='ln'>162</a></td><td><span class="ct"> */</span></td></tr>
  337. <tr name="163" id="163">
  338. <td><a id="l163" class='ln'>163</a></td><td></td></tr>
  339. </table>
  340. </pre>
  341. </body>
  342. </html>