📄 macro_8h.html
字号:
</div><p><a class="anchor" name="a286c4d9f5bd579a9067d989c66ef7a3"></a><!-- doxytag: member="macro.h::READBITS" ref="a286c4d9f5bd579a9067d989c66ef7a3" args="(sregister, return_value)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define READBITS </td> <td>(</td> <td class="paramtype">sregister, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">return_value </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">__asm__ __volatile__( <span class="stringliteral">"st.w sp++, r6\n"</span> \ <span class="stringliteral">"mfsr r6, %1\n"</span> \ <span class="stringliteral">"st.w %0, r6\n"</span> \ <span class="stringliteral">"ld.w r6, --sp\n"</span> \ : <span class="stringliteral">"=g"</span>(return_value) \ :<span class="stringliteral">"X"</span>(sregister) )</pre></div>define to read a given system registers <p>Store r6 register on stack and increment pointer. Then load the system register<dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sregister</em> </td><td>and store this value in the</td></tr> <tr><td valign="top"></td><td valign="top"><em>return_value</em> </td><td>before loading value from stack and deincrement r7. </td></tr> </table></dl><p>Definition at line <a class="el" href="macro_8h-source.html#l00092">92</a> of file <a class="el" href="macro_8h-source.html">macro.h</a>.</div></div><p><a class="anchor" name="5b04fafb462f678a6573b80cf371048c"></a><!-- doxytag: member="macro.h::SETBIT" ref="5b04fafb462f678a6573b80cf371048c" args="(sregister, bitname)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SETBIT </td> <td>(</td> <td class="paramtype">sregister, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bitname </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">__asm__( <span class="stringliteral">"st.w sp++, r7\n"</span> \ <span class="stringliteral">"mfsr r7, %0\n"</span> \ <span class="stringliteral">"sbr r7, %1\n"</span> \ <span class="stringliteral">"mtsr %0, r7\n"</span> \ <span class="stringliteral">"ld.w r7, --sp\n"</span> \ : \ :<span class="stringliteral">"X"</span>(sregister), <span class="stringliteral">"g"</span>(bitname) )</pre></div>define which sets a bit in system registers <p>First store the r7 register on the stack and increment the pointer. Then load the system register<dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sregister,set</em> </td><td>the bit</td></tr> <tr><td valign="top"></td><td valign="top"><em>bitname,store</em> </td><td>the system register and load value from stack to r7 and deincrement. </td></tr> </table></dl><p>Definition at line <a class="el" href="macro_8h-source.html#l00031">31</a> of file <a class="el" href="macro_8h-source.html">macro.h</a>.</div></div><p><a class="anchor" name="897e2a604a348ff95049e5b2a478f11d"></a><!-- doxytag: member="macro.h::TGLBIT" ref="897e2a604a348ff95049e5b2a478f11d" args="(sregister, bitname)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TGLBIT </td> <td>(</td> <td class="paramtype">sregister, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bitname </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> TOGGLEBIT(sregister, bitname)</td> </tr> </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="macro_8h-source.html#l00082">82</a> of file <a class="el" href="macro_8h-source.html">macro.h</a>.</div></div><p><a class="anchor" name="3b39fa193fcd808edb19a42858aaa2af"></a><!-- doxytag: member="macro.h::TOGGLEBIT" ref="3b39fa193fcd808edb19a42858aaa2af" args="(sregister, bitname)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TOGGLEBIT </td> <td>(</td> <td class="paramtype">sregister, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bitname </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">__asm__( <span class="stringliteral">"st.w sp++, r7\n"</span> \ <span class="stringliteral">"st.w sp++, r6\n"</span> \ <span class="stringliteral">"mfsr r7, %0\n"</span> \ <span class="stringliteral">"mov r6, 0\n"</span> \ <span class="stringliteral">"sbr r6, %1\n"</span> \ <span class="stringliteral">"eor r7, r6\n"</span> \ <span class="stringliteral">"mtsr %0, r7\n"</span> \ <span class="stringliteral">"ld.w r6, --sp\n"</span> \ <span class="stringliteral">"ld.w r7, --sp\n"</span> \ : \ :<span class="stringliteral">"X"</span>(sregister), <span class="stringliteral">"g"</span>(bitname) )</pre></div>define which toggles a bit in system registers <p>First store the r7 register on the stack and increment the pointer. Then load the system register<dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sregister,toggle</em> </td><td>the bit</td></tr> <tr><td valign="top"></td><td valign="top"><em>bitname</em> </td><td>by using an exclusive or, store the system register and load value from stack to r7 and deincrement. </td></tr> </table></dl><p>Definition at line <a class="el" href="macro_8h-source.html#l00069">69</a> of file <a class="el" href="macro_8h-source.html">macro.h</a>.</div></div><p><hr size="1"><address style="align: right;"><small>Generated on Thu May 10 14:14:48 2007 for AVR321000 Communication with the AVR32 USART by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -