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

📄 avrgsm__com_8c.html

📁 SMS傳送Sourcode,compiler with C,AT command
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!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>AVR323 Interfacing GSM modems: AVRGSM_com.c File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.7 --><div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div><h1>AVRGSM_FILES/AVRGSM_com.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>Atmel Corporation<p><ul><li>File : AVR_com.c</li><li>Compiler : IAR EWAAVR 4.11a</li></ul><p><ul><li>Support mail : <a href="mailto:avr@atmel.com">avr@atmel.com</a></li></ul><p><ul><li>Supported devices : All devices with a UART/USART can be used. The example is written for ATmega128</li></ul><p><ul><li>AppNote : AVR323 - Interfacing GSM modems</li></ul><p><ul><li>Description : Example of how to use AT-Commands to control a GSM modem</li></ul><p><dl compact><dt><b>Revision</b></dt><dd>1.2 </dd></dl><dl compact><dt><b>Date</b></dt><dd>Wednesday, January 26, 2005 10:43:44 UTC </dd></dl><p>Definition in file <a class="el" href="AVRGSM__com_8c-source.html">AVRGSM_com.c</a>.<p><code>#include &lt;ioavr.h&gt;</code><br><code>#include &lt;inavr.h&gt;</code><br><code>#include "<a class="el" href="AVRGSM__com_8h-source.html">AVRGSM_com.h</a>"</code><br><p>Include dependency graph for AVRGSM_com.c:<p><center><img src="AVRGSM__com_8c__incl.png" border="0" usemap="#AVRGSM_com.c_map" alt="Include dependency graph"></center><map name="AVRGSM_com.c_map"><area href="AVRGSM__com_8h.html" shape="rect" coords="177,7,303,34" alt=""></map><p><a href="AVRGSM__com_8c-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>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a23">COM_gets</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return pointer to receive buffer.  <a href="#a23"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a12">COM_init</a> (unsigned int baudrate)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">USART0 initialization.  <a href="#a12"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a19">COM_put_integer</a> (int i)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method will print an integer in the range +-(10^5 - 1 ).  <a href="#a19"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a18">COM_putchar</a> (unsigned char data)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adapted putchar method...no need for interrup driven tx-isr.  <a href="#a18"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a20">COM_puts</a> (unsigned char *str)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print unsigned char string.  <a href="#a20"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a21">COM_putsf</a> (const unsigned char __flash *fstr)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print const unsigned char __flash string.  <a href="#a21"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a15">COM_rx_off</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RX interrupt disable.  <a href="#a15"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a14">COM_rx_on</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RX interrupt enable.  <a href="#a14"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a13">COM_rx_reset</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset receive interrupt.  <a href="#a13"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a16">COM_setSearchString</a> (unsigned char Response)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set desired search string.  <a href="#a16"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a22">COM_trim</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove trailing O, K,  and <br>.  <a href="#a22"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>__interrupt void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a17">USART0_RX_interrupt</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Receive interrupt routine.  <a href="#a17"></a><br><br></td></tr><tr><td colspan=2><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a7">CMTI</a> [] = "+CMTI: "</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">New Message arrived.  <a href="#a7"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a9">CR_LF</a> [] = "\r\n"</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Carrige Return Line Feed.  <a href="#a9"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a6">OK</a> [] = "OK\r\n"</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">"OK"  <a href="#a6"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a8">READY</a> [] = "&gt; "</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Phone ready to receive text message.  <a href="#a8"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a1">rx_ack</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extern flag from AVRSMS_com.c.  <a href="#a1"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a2">rx_buffer</a> [RX_BUFFER_SIZE]</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">private buffer  <a href="#a2"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a4">rx_i</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Buffer counter.  <a href="#a4"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a0">rx_overflow</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Overflow and acknowledge flag.  <a href="#a0"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a5">rx_wr_i</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Buffer write index.  <a href="#a5"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a10">searchFor</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flash pointer.  <a href="#a10"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a3">searchStr</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private pointer.  <a href="#a3"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>const unsigned char __flash *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="AVRGSM__com_8c.html#a11">searchStrings</a> [4] = {<a class="el" href="AVRGSM__com_8c.html#a6">OK</a>, <a class="el" href="AVRGSM__com_8c.html#a7">CMTI</a>, <a class="el" href="AVRGSM__com_8c.html#a8">READY</a>, <a class="el" href="AVRGSM__com_8c.html#a9">CR_LF</a>}</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize pointer.  <a href="#a11"></a><br><br></td></tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="a23" doxytag="AVRGSM_com.c::COM_gets" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> unsigned char* COM_gets           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">void&nbsp;</td>          <td class="mdname1" valign="top" nowrap>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Return pointer to receive buffer. <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>void</em>&nbsp;</td><td></td></tr>  </table></dl><dl compact><dt><b>Return values:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>rx_buffer</em>&nbsp;</td><td>Pointer to receive buffer </td></tr>  </table></dl><p>Definition at line <a class="el" href="AVRGSM__com_8c-source.html#l00317">317</a> of file <a class="el" href="AVRGSM__com_8c-source.html">AVRGSM_com.c</a>.<p>References <a class="el" href="AVRGSM__com_8c-source.html#l00037">rx_buffer</a>.<p>Referenced by <a class="el" href="AVRGSM__tools_8c-source.html#l00080">TOOLS__decodeCMGR()</a>, and <a class="el" href="AVRGSM__tools_8c-source.html#l00039">TOOLS_decodeCMTI()</a>.<p><pre class="fragment"><div>00318 {00319   <span class="keywordflow">return</span> <a class="code" href="AVRGSM__com_8c.html#a2">rx_buffer</a>;00320 }</div></pre>    </td>  </tr></table><a class="anchor" name="a12" doxytag="AVRGSM_com.c::COM_init" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void COM_init           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">unsigned int&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>baudrate</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>USART0 initialization. <p>This function set correct baurate and functionality of the USART0. See data sheet for more details.<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>input</em>&nbsp;</td><td>Desired baudrate...see datasheet</td></tr>  </table></dl><dl compact><dt><b>Return values:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>void</em>&nbsp;</td><td></td></tr>  </table></dl><p>Definition at line <a class="el" href="AVRGSM__com_8c-source.html#l00066">66</a> of file <a class="el" href="AVRGSM__com_8c-source.html">AVRGSM_com.c</a>.<p>References <a class="el" href="AVRGSM__com_8c-source.html#l00085">COM_rx_reset()</a>.<p>Referenced by <a class="el" href="main_8c-source.html#l00206">Initialization()</a>.<p><pre class="fragment"><div>00067 {00068 00069     UBRR0H = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) (baudrate&gt;&gt;8);                       <span class="comment">//Setting baudrate</span>00070     UBRR0L = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) baudrate;                            <span class="comment">//Setting baudrate</span>00071         00072     UCSR0B = ( 1 &lt;&lt; RXEN0 ) | ( 1 &lt;&lt; TXEN0 );                     <span class="comment">//Enable receiver and transmitter</span>00073     UCSR0C = ( 1 &lt;&lt; USBS0 ) | ( 1 &lt;&lt; UCSZ01 ) | ( 1 &lt;&lt; UCSZ00 );  <span class="comment">//8N1...see Datasheet for more information</span>00074 00075     <a class="code" href="AVRGSM__com_8c.html#a13">COM_rx_reset</a>();                                               <span class="comment">//Reset buffers etc.</span>00076 }</div></pre><p>Here is the call graph for this function:<p><center><img src="AVRGSM__com_8c_a12_cgraph.png" border="0" usemap="#AVRGSM__com_8c_a12_cgraph_map" alt=""></center><map name="AVRGSM__com_8c_a12_cgraph_map"><area href="AVRGSM__com_8c.html#a13" shape="rect" coords="135,7,244,33" alt=""></map>    </td>  </tr></table><a class="anchor" name="a19" doxytag="AVRGSM_com.c::COM_put_integer" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void COM_put_integer           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">int&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>i</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>This method will print an integer in the range +-(10^5 - 1 ). <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>i</em>&nbsp;</td><td>integer to be printed</td></tr>  </table></dl><dl compact><dt><b>Return values:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td></td><td valign=top><em>void</em>&nbsp;</td><td></td></tr>  </table></dl><p>Local variables <p>Definition at line <a class="el" href="AVRGSM__com_8c-source.html#l00224">224</a> of file <a class="el" href="AVRGSM__com_8c-source.html">AVRGSM_com.c</a>.<p>References <a class="el" href="AVRGSM__com_8c-source.html#l00198">COM_putchar()</a>.<p>Referenced by <a class="el" href="AVRGSM__api_8c-source.html#l00125">API_deletemsg()</a>, <a class="el" href="AVRGSM__api_8c-source.html#l00232">API_readmsg()</a>, and <a class="el" href="AVRGSM__api_8c-source.html#l00160">API_sendmsg()</a>.<p><pre class="fragment"><div>00225 {00226 00228     <span class="keywordtype">int</span> ii;00229     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> int_buf[5];00230 00231     <span class="keywordflow">if</span> (i &lt; 0)                                              <span class="comment">//Integer is negative</span>00232     {00233         i = -i;                                             <span class="comment">//Convert to positive Integer</span>00234         <a class="code" href="AVRGSM__com_8h.html#a12">COM_putchar</a>(<span class="charliteral">'-'</span>);                                   <span class="comment">//Print - sign</span>00235     }00236 00237     <span class="keywordflow">for</span> (ii=0; ii &lt; 5; )                                    <span class="comment">//Convert Integer to char array</span>00238     {00239         int_buf[ii++] = <span class="charliteral">'0'</span>+ i % 10;                        <span class="comment">//Find carry using modulo operation</span>00240         i = i / 10;                                         <span class="comment">//Move towards MSB</span>00241     }00242     <span class="keywordflow">do</span>{ ii--; }<span class="keywordflow">while</span>( (int_buf[ii] == <span class="charliteral">'0'</span>) &amp;&amp; (ii != 0) );  <span class="comment">//Remove leading 0's</span>00243     <span class="keywordflow">do</span>{ <a class="code" href="AVRGSM__com_8h.html#a12">COM_putchar</a>( int_buf[ii--] ); }<span class="keywordflow">while</span> (ii &gt;= 0);     <span class="comment">//Print int-&gt;char array convertion</span>00244 

⌨️ 快捷键说明

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