📄 avrgsm__com_8c-source.html
字号:
00171 <a class="code" href="AVRGSM__com_8c.html#a3">searchStr</a> = <a class="code" href="AVRGSM__com_8h.html#a6">CRLF_</a>;00172 }00173 00174 <span class="keywordflow">else</span> <span class="comment">//Normal acknowledgement</span>00175 {00176 <a class="code" href="AVRGSM__api_8c.html#a0">rx_ack</a> = 1; <span class="comment">//Set new message flag</span>00177 UCSR0B &= ~( 1 << RXCIE0 ); <span class="comment">// Disable RX interrupt</span>00178 }00179 }00180 }00181 00182 <span class="keywordflow">else</span>00183 {00184 <a class="code" href="AVRGSM__com_8c.html#a4">rx_i</a> = 0; <span class="comment">//Not valid search pattern...start again.</span>00185 }00186 }00187 00188 <a name="l00198"></a><a class="code" href="AVRGSM__com_8h.html#a12">00198</a> <span class="keywordtype">int</span> <a class="code" href="AVRGSM__com_8h.html#a12">COM_putchar</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> data )00199 {00200 00201 <span class="comment">//Local variables</span>00202 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;00203 00204 <span class="keywordflow">for</span>( i = 0; !( UCSR0A & ( 1 << UDRE0 ) ); i++ ) <span class="comment">// Wait for empty transmit buffer</span>00205 {00206 <span class="keywordflow">if</span>( i > <a class="code" href="AVRGSM__com_8h.html#a2">RX_WAIT</a> ) <span class="comment">//How long one should wait</span>00207 {00208 <span class="keywordflow">return</span> -1; <span class="comment">//Give feedback to function caller</span>00209 }00210 }00211 00212 UDR0 = data; <span class="comment">// Start transmittion </span>00213 00214 <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)data; <span class="comment">//Cast and return int value</span>00215 }00216 00217 <a name="l00224"></a><a class="code" href="AVRGSM__com_8h.html#a13">00224</a> <span class="keywordtype">void</span> <a class="code" href="AVRGSM__com_8h.html#a13">COM_put_integer</a>( <span class="keywordtype">int</span> i )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 < 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 < 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>) && (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 >= 0); <span class="comment">//Print int->char array convertion</span>00244 00245 }00246 00247 <a name="l00254"></a><a class="code" href="AVRGSM__com_8h.html#a14">00254</a> <span class="keywordtype">void</span> <a class="code" href="AVRGSM__com_8h.html#a14">COM_puts</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *str)00255 {00256 00257 <span class="keywordflow">for</span>( ;*str != <span class="charliteral">'\0'</span>; )00258 {00259 <a class="code" href="AVRGSM__com_8h.html#a12">COM_putchar</a>( *str++ );00260 }00261 }00262 00263 <a name="l00270"></a><a class="code" href="AVRGSM__com_8h.html#a15">00270</a> <span class="keywordtype">void</span> <a class="code" href="AVRGSM__com_8h.html#a15">COM_putsf</a>( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> __flash *fstr )00271 {00272 00273 <span class="keywordflow">for</span>( ;*fstr != <span class="charliteral">'\0'</span>; )00274 {00275 <a class="code" href="AVRGSM__com_8h.html#a12">COM_putchar</a>( *fstr++ );00276 }00277 }00278 00279 <a name="l00289"></a><a class="code" href="AVRGSM__com_8h.html#a16">00289</a> <span class="keywordtype">int</span> <a class="code" href="AVRGSM__com_8c.html#a22">COM_trim</a>( <span class="keywordtype">void</span> )00290 {00291 00293 <span class="keywordtype">int</span> i;00294 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> temp;00295 00296 <span class="keywordflow">for</span>( i = <a class="code" href="AVRGSM__com_8c.html#a5">rx_wr_i</a> - 1; i >= 0; i--) <span class="comment">//Run through COM_in[] backwards</span>00297 {00298 temp = <a class="code" href="AVRGSM__com_8c.html#a2">rx_buffer</a>[i]; <span class="comment">//rx_buff[i] into temp</span>00299 <span class="keywordflow">if</span>( ( temp != <span class="charliteral">'\r'</span> ) && ( temp != <span class="charliteral">'\n'</span> ) && ( temp != <span class="charliteral">'O'</span> ) && ( temp != <span class="charliteral">'K'</span> ) ) <span class="comment">//If not equal to 'O', 'K', '\r' or '\n', break</span>00300 {00301 <span class="keywordflow">break</span>; <span class="comment">//Do break</span>00302 }00303 }00304 00305 <a class="code" href="AVRGSM__com_8c.html#a2">rx_buffer</a>[ i+1 ] = <span class="charliteral">'\0'</span>; <span class="comment">//Terminate trimmed string</span>00306 00307 <span class="keywordflow">return</span> i; <span class="comment">//Return new length</span>00308 }00309 00310 <a name="l00317"></a><a class="code" href="AVRGSM__com_8h.html#a17">00317</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="AVRGSM__com_8c.html#a23">COM_gets</a>( <span class="keywordtype">void</span> )00318 {00319 <span class="keywordflow">return</span> <a class="code" href="AVRGSM__com_8c.html#a2">rx_buffer</a>;00320 }</div></pre><hr size="1"><address style="align: right;"><small>Generated on Tue Nov 1 16:21:39 2005 for AVR323 Interfacing GSM modems by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -