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

📄 bldc_8h.html

📁 一个用GCC做的atmel芯片控制的无刷无传感器的程序.包括各种参考文档!
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<!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>Sensorless control of 3-phase brushless DC motors: BLDC.h File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.4 --><div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div><h1>BLDC.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>Atmel Corporation<p><ul><li>File : <a class="el" href="BLDC_8h.html">BLDC.h</a></li><li>Compiler : IAR EWAAVR 2.28a/3.10c</li></ul><p><ul><li>Support mail : <a href="mailto:avr@atmel.com">avr@atmel.com</a></li></ul><p><ul><li>Supported devices : ATmega48/88/168</li></ul><p><ul><li>AppNote : AVR444 - Sensorless control of three-phase brushless ' DC motors with ATmega48.</li></ul><p><ul><li>Description : Example of how to use the ATmega48 for sensorless control of a three phase brushless DC motor.</li></ul><p><dl compact><dt><b>Revision</b></dt><dd>1.1 </dd></dl><dl compact><dt><b>Date</b></dt><dd>Monday, October 10, 2005 11:15:46 UTC </dd></dl><p>Definition in file <a class="el" href="BLDC_8h-source.html">BLDC.h</a>.<p><p>This graph shows which files directly or indirectly include this file:<p><center><img src="BLDC_8h__dep__incl.png" border="0" usemap="#BLDC.hdep_map" alt=""></center><map name="BLDC.hdep_map"><area href="main_8c.html" shape="rect" coords="126,7,187,33" alt=""></map><p><a href="BLDC_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a34">ADC_MUX_CURRENT</a>&nbsp;&nbsp;&nbsp;0x3</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for current sampling.  <a href="#a34"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a35">ADC_MUX_REF_VOLTAGE</a>&nbsp;&nbsp;&nbsp;0x5</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for reference voltage sampling.  <a href="#a35"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a33">ADC_MUX_SPEED_REF</a>&nbsp;&nbsp;&nbsp;0x4</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for speed reference sampling.  <a href="#a33"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a30">ADC_MUX_U</a>&nbsp;&nbsp;&nbsp;0x0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for channel U sampling.  <a href="#a30"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a31">ADC_MUX_V</a>&nbsp;&nbsp;&nbsp;0x1</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for channel V sampling.  <a href="#a31"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a32">ADC_MUX_W</a>&nbsp;&nbsp;&nbsp;0x2</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC multiplexer selection for channel W sampling.  <a href="#a32"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a49">ADC_PRESCALER</a>&nbsp;&nbsp;&nbsp;ADC_PRESCALER_8</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC prescaler used.  <a href="#a49"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a48">ADC_PRESCALER_16</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; ADPS2) | (0 &lt;&lt; ADPS1) | (0 &lt;&lt; ADPS0))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC clock prescaled by 8 value.  <a href="#a48"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a47">ADC_PRESCALER_8</a>&nbsp;&nbsp;&nbsp;((0 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1) | (1 &lt;&lt; ADPS0))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC clock prescaled by 8 value.  <a href="#a47"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a36">ADC_REF_CHANNEL</a>&nbsp;&nbsp;&nbsp;((0 &lt;&lt; REFS1) | (0 &lt;&lt; REFS0))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC reference channel selection.  <a href="#a36"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a37">ADC_RES_ALIGNMENT_BEMF</a>&nbsp;&nbsp;&nbsp;(1 &lt;&lt; ADLAR)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC result alignment for BEMF measurement.  <a href="#a37"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a39">ADC_RES_ALIGNMENT_CURRENT</a>&nbsp;&nbsp;&nbsp;(1 &lt;&lt; ADLAR)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC result alignment for CURRENT measurement.  <a href="#a39"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a40">ADC_RES_ALIGNMENT_REF_VOLTAGE</a>&nbsp;&nbsp;&nbsp;(1 &lt;&lt; ADLAR)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC result alignment for reference voltage measurement.  <a href="#a40"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a38">ADC_RES_ALIGNMENT_SPEED_REF</a>&nbsp;&nbsp;&nbsp;(1 &lt;&lt; ADLAR)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC result alignment for speed reference measurement.  <a href="#a38"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a66">ADC_RESOLUTION</a>&nbsp;&nbsp;&nbsp;256</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The ADC resolution used.  <a href="#a66"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a50">ADC_TRIGGER_SOURCE</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; ADTS2) | (0 &lt;&lt; ADTS1) | (0 &lt;&lt; ADTS0))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC trigger source.  <a href="#a50"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a78">ADC_ZC_THRESHOLD</a>&nbsp;&nbsp;&nbsp;0x98</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero-cross threshold.  <a href="#a78"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a45">ADMUX_CURRENT</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_CURRENT | ADC_MUX_CURRENT)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for current sampling.  <a href="#a45"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a46">ADMUX_REF_VOLTAGE</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_REF_VOLTAGE | ADC_MUX_REF_VOLTAGE)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for reference voltage sampling.  <a href="#a46"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a44">ADMUX_SPEED_REF</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_SPEED_REF | ADC_MUX_SPEED_REF)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for speed reference sampling.  <a href="#a44"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a41">ADMUX_U</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_BEMF | ADC_MUX_U)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for channel U sampling.  <a href="#a41"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a42">ADMUX_V</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_BEMF | ADC_MUX_V)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for channel V sampling.  <a href="#a42"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a43">ADMUX_W</a>&nbsp;&nbsp;&nbsp;(ADC_REF_CHANNEL | ADC_RES_ALIGNMENT_BEMF | ADC_MUX_W)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADMUX register value for channel W sampling.  <a href="#a43"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a74">ANALOG_COMPARATOR_ENABLE</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a12">CCW</a>&nbsp;&nbsp;&nbsp;1</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Counterclockwise rotation flag. Used only in macros.  <a href="#a12"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a57">CLEAR_ALL_TIMER0_INT_FLAGS</a>&nbsp;&nbsp;&nbsp;(TIFR0 = TIFR0)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that clears all Timer/counter0 interrupt flags.  <a href="#a57"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a60">CLEAR_ALL_TIMER1_INT_FLAGS</a>&nbsp;&nbsp;&nbsp;(TIFR1 = TIFR1)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that clears all Timer/Counter1 interrupt flags.  <a href="#a60"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a79">COMMUTATION_CORRECTION</a>&nbsp;&nbsp;&nbsp;50</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a69">COMMUTATION_TIMING_IIR_COEFF_A</a>&nbsp;&nbsp;&nbsp;1</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input value relative gain in IIR filter.  <a href="#a69"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a70">COMMUTATION_TIMING_IIR_COEFF_B</a>&nbsp;&nbsp;&nbsp;3</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Relative feedback gain in IIR filter.  <a href="#a70"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a73">CURRENT_LIMITER_CRITICAL</a>&nbsp;&nbsp;&nbsp;3000</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current value in milliAmpere where the motor should be shut down.  <a href="#a73"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a75">CURRENT_LIMITER_FACTOR</a>&nbsp;&nbsp;&nbsp;(1 / 5)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a72">CURRENT_LIMITER_START</a>&nbsp;&nbsp;&nbsp;2500</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The current value in milliAmpere where the current limiter starts to kick in.  <a href="#a72"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a11">CW</a>&nbsp;&nbsp;&nbsp;0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clockwise rotation flag. Used only in macros.  <a href="#a11"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a13">DIRECTION_OF_ROTATION</a>&nbsp;&nbsp;&nbsp;CCW</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a58">DISABLE_ALL_TIMER0_INTS</a>&nbsp;&nbsp;&nbsp;(TIMSK0 = 0)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that disables all Timer/Counter0 interrupts.  <a href="#a58"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a61">DISABLE_ALL_TIMER1_INTS</a>&nbsp;&nbsp;&nbsp;(TIMSK1 = 0)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that disables all Timer/Counter1 interrupts.  <a href="#a61"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a76">DISABLE_DRIVING</a>&nbsp;&nbsp;&nbsp;(DRIVE_PORT = 0x00)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that cuts all power to the motor.  <a href="#a76"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a29">DRIVE_DDR</a>&nbsp;&nbsp;&nbsp;DDRB</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data direction register for drive pattern output.  <a href="#a29"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a14">DRIVE_PATTERN_STEP1_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; UL) | (1 &lt;&lt; VH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 1, CCW rotation.  <a href="#a14"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a20">DRIVE_PATTERN_STEP1_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; VH) | (1 &lt;&lt; WL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 1, CW rotation.  <a href="#a20"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a15">DRIVE_PATTERN_STEP2_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; UL) | (1 &lt;&lt; WH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 2, CCW rotation.  <a href="#a15"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a21">DRIVE_PATTERN_STEP2_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; UH) | (1 &lt;&lt; WL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 2, CW rotation.  <a href="#a21"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a16">DRIVE_PATTERN_STEP3_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; VL) | (1 &lt;&lt; WH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 3, CCW rotation.  <a href="#a16"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a22">DRIVE_PATTERN_STEP3_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; UH) | (1 &lt;&lt; VL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 3, CW rotation.  <a href="#a22"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a17">DRIVE_PATTERN_STEP4_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; VL) | (1 &lt;&lt; UH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 4, CCW rotation.  <a href="#a17"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a23">DRIVE_PATTERN_STEP4_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; WH) | (1 &lt;&lt; VL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 4, CW rotation.  <a href="#a23"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a18">DRIVE_PATTERN_STEP5_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; WL) | (1 &lt;&lt; UH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 5, CCW rotation.  <a href="#a18"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a24">DRIVE_PATTERN_STEP5_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; WH) | (1 &lt;&lt; UL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 5, CW rotation.  <a href="#a24"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a19">DRIVE_PATTERN_STEP6_CCW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; WL) | (1 &lt;&lt; VH))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 6, CCW rotation.  <a href="#a19"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a25">DRIVE_PATTERN_STEP6_CW</a>&nbsp;&nbsp;&nbsp;((1 &lt;&lt; VH) | (1 &lt;&lt; UL))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drive pattern for commutation step 6, CW rotation.  <a href="#a25"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a28">DRIVE_PORT</a>&nbsp;&nbsp;&nbsp;PORTB</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PORT register for drive pattern output.  <a href="#a28"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a26">EDGE_FALLING</a>&nbsp;&nbsp;&nbsp;1</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero crossing polarity flag value for falling zero crossing.  <a href="#a26"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a27">EDGE_RISING</a>&nbsp;&nbsp;&nbsp;0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero crossing polarity flag value for rinsing zero crossing.  <a href="#a27"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a64">EXTERNAL_REF_VOLTAGE</a>&nbsp;&nbsp;&nbsp;((4930UL * 10) / 43)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">External reference voltage in milliVolts.  <a href="#a64"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a3">FALSE</a>&nbsp;&nbsp;&nbsp;0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Boolean FALSE value.  <a href="#a3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a81">MAX_PWM_COMPARE_VALUE</a>&nbsp;&nbsp;&nbsp;200</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum allowed PWM compare value.  <a href="#a81"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a54">MAX_RESTART_ATTEMPTS</a>&nbsp;&nbsp;&nbsp;10</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum number of restart attempts without external action when stall is detected.  <a href="#a54"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a83">MAX_SPEED</a>&nbsp;&nbsp;&nbsp;8000UL</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum allowed speed. (Only has effect when closed loop speed control is used).  <a href="#a83"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a80">MIN_PWM_COMPARE_VALUE</a>&nbsp;&nbsp;&nbsp;90</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minimum allowed PWM compare value.  <a href="#a80"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a82">MIN_SPEED</a>&nbsp;&nbsp;&nbsp;3000UL</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minimum allowed speed. (Only has effect when closed loop speed control is used).  <a href="#a82"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a84">P_REG_K_P</a>&nbsp;&nbsp;&nbsp;64</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">P-regulator proportional gain.  <a href="#a84"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a85">P_REG_SCALING</a>&nbsp;&nbsp;&nbsp;65536</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">P-regulator scaling factor. The result is divided by this number.  <a href="#a85"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a1">PWM_BASE_FREQUENCY</a>&nbsp;&nbsp;&nbsp;20000</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM base frequency. Used to calculate PWM TOP value.  <a href="#a1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a2">PWM_TOP_VALUE</a>&nbsp;&nbsp;&nbsp;(SYSTEM_FREQUENCY / PWM_BASE_FREQUENCY / 2)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM TOP value. Automatically calculated to give desired <a class="el" href="BLDC_8h.html#a1">PWM_BASE_FREQUENCY</a>.  <a href="#a2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a56">SET_PWM_COMPARE_VALUE</a>(compareValue)&nbsp;&nbsp;&nbsp;(OCR0B = compareValue)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that sets a new duty cycle by changing the PWM compare value.  <a href="#a56"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a59">SET_TIMER0_INT_ZC_DETECTION</a>&nbsp;&nbsp;&nbsp;(TIMSK0 = (1 &lt;&lt; TOIE0))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that enables Timer/Counter0 interrupt where zero crossings are detected.  <a href="#a59"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a62">SET_TIMER1_INT_COMMUTATION</a>&nbsp;&nbsp;&nbsp;(TIMSK1 = (1 &lt;&lt; OCIE1A))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that enable Timer/Counter1 interrupt responsible for commutation.  <a href="#a62"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a63">SET_TIMER1_INT_HOLDOFF</a>&nbsp;&nbsp;&nbsp;(TIMSK1 = (1 &lt;&lt; OCIE1B))</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro that enables Timer/Counter1 interrupt responsible for enabling ADC sampling after ADC holdoff period.  <a href="#a63"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a65">SHUNT_RESISTANCE</a>&nbsp;&nbsp;&nbsp;220</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current measurement shunt value in milliOhm.  <a href="#a65"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a71">SPEED_CONTROL_OPEN_LOOP</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uncomment one of the following lines to choose open or closed loop speed control.  <a href="#a71"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a52">STARTUP_DELAY_MULTIPLIER</a>&nbsp;&nbsp;&nbsp;100</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Startup delays are given in milliseconds times STARTUP_DELAY_MULTIPLIER.  <a href="#a52"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a53">STARTUP_LOCK_DELAY</a>&nbsp;&nbsp;&nbsp;10000</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="BLDC_8h.html#a51">STARTUP_NUM_COMMUTATIONS</a>&nbsp;&nbsp;&nbsp;8</td></tr>

⌨️ 快捷键说明

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