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

📄 main_8c-source.html

📁 SMS傳送Sourcode,compiler with C,AT command
💻 HTML
字号:
<!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: ATAVRBFLY_FILES/main.c Source File</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>ATAVRBFLY_FILES/main.c</h1><a href="main_8c.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">// This file has been prepared for Doxygen automatic documentation generation.</span>00047 <span class="comment"></span><span class="comment">//Includes</span>00048 <span class="preprocessor">#include&lt;inavr.h&gt;</span>00049 <span class="preprocessor">#include&lt;iom169.h&gt;</span>00050 00051 <span class="preprocessor">#include"<a class="code" href="main_8h.html">main.h</a>"</span>00052 <span class="preprocessor">#include"LCD_functions.h"</span>00053 <span class="preprocessor">#include"<a class="code" href="LCD__driver_8h.html">LCD_driver.h</a>"</span>00054 <span class="preprocessor">#include"<a class="code" href="button_8h.html">button.h</a>"</span>00055 <span class="preprocessor">#include"<a class="code" href="BCD_8h.html">BCD.h</a>"</span>00056 <span class="preprocessor">#include"<a class="code" href="types_8h.html">types.h</a>"</span>00057 <span class="preprocessor">#include"<a class="code" href="STATE__functions_8h.html">STATE_functions.h</a>"</span>00058 <span class="preprocessor">#include"<a class="code" href="menu_8h.html">menu.h</a>"</span>00059 00060 <span class="preprocessor">#include"..\AVRGSM_FILES\AVRGSM_api.h"</span>00061 <span class="preprocessor">#include"..\AVRGSM_FILES\AVRGSM_com.h"</span>00062 00063 <a name="l00064"></a><a class="code" href="main_8c.html#a0">00064</a> <span class="preprocessor">#define pLCDREG_test (*(char *)(0xEC))</span>00065 <span class="preprocessor"></span>00066 <a name="l00067"></a><a class="code" href="main_8c.html#a1">00067</a> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="AVRGSM__api_8c.html#a0">rx_ack</a>; <span class="comment">//From AVRGSM_com.c</span>00068 <a name="l00069"></a><a class="code" href="main_8c.html#a2">00069</a> <span class="keyword">extern</span> __flash <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="LCD__driver_8c.html#a10">LCD_character_table</a>[];00070 <a name="l00071"></a><a class="code" href="main_8c.html#a3">00071</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="main_8c.html#a3">state</a>;            <span class="comment">// helds the current state, according to</span>00072                                 <span class="comment">// "menu.h"</span>00073 00074 <a name="l00084"></a><a class="code" href="main_8c.html#a4">00084</a> __C_task <span class="keywordtype">void</span> <a class="code" href="main_8c.html#a4">main</a>( <span class="keywordtype">void</span> )00085 {00086 00088     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nextstate;00089     <span class="keyword">static</span> <span class="keywordtype">char</span> __flash *statetext;00090     char (*pStateFunc)(<span class="keywordtype">char</span>);00091     <span class="keywordtype">char</span> <a class="code" href="main_8h.html#a27">input</a>;00092     <span class="keywordtype">char</span> i;00093 00095     <a class="code" href="main_8c.html#a3">state</a> = nextstate = <a class="code" href="main_8h.html#a26a2">ST_AVR_IDLE</a>;00096     statetext = <a class="code" href="menu_8h.html#a0">MT_IDLE</a>;00097     pStateFunc = <a class="code" href="types_8h.html#a3">NULL</a>;00098 00099 00101     <a class="code" href="main_8c.html#a6">Initialization</a>( );00102     __enable_interrupt();00103 00104 00106     <span class="keywordflow">for</span>( ;; )00107     {00108 00109         <span class="keywordflow">if</span>( ( <a class="code" href="main_8c.html#a3">state</a> == <a class="code" href="main_8h.html#a26a4">ST_AVR_READY</a> ) &amp;&amp; ( <a class="code" href="AVRGSM__api_8c.html#a0">rx_ack</a> == 1 ) )      <span class="comment">//New SMS</span>00110         {00111 00112             <a class="code" href="main_8c.html#a3">state</a> = nextstate = <a class="code" href="main_8h.html#a26a9">ST_AVR_NEW_SMS_function</a>;     <span class="comment">//Setting new state</span>00113             statetext = <a class="code" href="types_8h.html#a3">NULL</a>;00114             pStateFunc = <a class="code" href="STATE__functions_8c.html#a5">ST_get_index</a>;00115         }00116 00117         <span class="comment">// Plain menu text</span>00118         <span class="keywordflow">if</span>( statetext )00119         {00120 00121             <a class="code" href="Lcd__functions_8h.html#a0">LCD_puts_f</a>( statetext, 1 );00122             <a class="code" href="Lcd__functions_8h.html#a5">LCD_Colon</a>( 0 );00123             statetext = <a class="code" href="types_8h.html#a3">NULL</a>;00124         }00125 00126         <span class="comment">//Get input</span>00127         <a class="code" href="main_8h.html#a27">input</a> = <a class="code" href="button_8c.html#a7">getkey</a>( );00128 00129         <span class="keywordflow">if</span> ( pStateFunc )00130         {00131 00132             <span class="comment">// When in this state, we must call the state function</span>00133             nextstate = pStateFunc(<a class="code" href="main_8h.html#a27">input</a>);00134         }00135 00136         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="main_8h.html#a27">input</a> != <a class="code" href="main_8h.html#a27a17">KEY_NULL</a>)00137         {00138 00139             <span class="comment">// Plain menu, clock the state machine</span>00140             nextstate = <a class="code" href="main_8h.html#a24">StateMachine</a>(<a class="code" href="main_8c.html#a3">state</a>, <a class="code" href="main_8h.html#a27">input</a>);00141         }00142 00143         <span class="keywordflow">if</span> (nextstate != <a class="code" href="main_8c.html#a3">state</a>)00144         {00145             <a class="code" href="main_8c.html#a3">state</a> = nextstate;00146 00147             <span class="keywordflow">for</span> (i=0; <a class="code" href="menu_8h.html#a11">menu_state</a>[i].<a class="code" href="structMENU__STATE.html#o2">state</a>; i++)00148             {00149 00150                 <span class="keywordflow">if</span> (<a class="code" href="menu_8h.html#a11">menu_state</a>[i].<a class="code" href="structMENU__STATE.html#o2">state</a> == <a class="code" href="main_8c.html#a3">state</a>)00151                 {00152 00153                     statetext =  <a class="code" href="menu_8h.html#a11">menu_state</a>[i].<a class="code" href="structMENU__STATE.html#o1">pText</a>;00154                     pStateFunc = <a class="code" href="menu_8h.html#a11">menu_state</a>[i].<a class="code" href="structMENU__STATE.html#o0">pFunc</a>;00155                     <span class="keywordflow">break</span>;00156                 }00157             }00158         }00159     }00160 }00161 00162 <a name="l00171"></a><a class="code" href="main_8h.html#a24">00171</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="main_8h.html#a24">StateMachine</a>( <span class="keywordtype">char</span> state, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> stimuli )00172 {00173 00174     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nextstate = <a class="code" href="main_8c.html#a3">state</a>;    <span class="comment">// Default stay in same state</span>00175     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i;00176 00177     <span class="keywordflow">for</span> ( i=0; <a class="code" href="menu_8h.html#a10">menu_nextstate</a>[i].<a class="code" href="structMENU__NEXTSTATE.html#o2">state</a>; i++ )00178     {00179 00180         <span class="keywordflow">if</span> ( ( <a class="code" href="menu_8h.html#a10">menu_nextstate</a>[i].<a class="code" href="structMENU__NEXTSTATE.html#o2">state</a> == <a class="code" href="main_8c.html#a3">state</a> ) &amp;&amp; ( <a class="code" href="menu_8h.html#a10">menu_nextstate</a>[i].<a class="code" href="structMENU__NEXTSTATE.html#o0">input</a> == stimuli ) )00181         {00182 00183             <span class="comment">// This is the one!</span>00184             nextstate = <a class="code" href="menu_8h.html#a10">menu_nextstate</a>[i].<a class="code" href="structMENU__NEXTSTATE.html#o1">nextstate</a>;00185             <span class="keywordflow">break</span>;00186         }00187     }00188 00189     <span class="keywordflow">return</span> nextstate;00190 }00191 00192 <a name="l00206"></a><a class="code" href="main_8h.html#a23">00206</a> <span class="keywordtype">void</span> <a class="code" href="main_8c.html#a6">Initialization</a>(<span class="keywordtype">void</span>)00207 {00208 00209     PORTB = (15&lt;&lt;PORTB0);   <span class="comment">// Enable pullup on</span>00210     PORTE = (15&lt;&lt;PORTE4);00211 00212     <a class="code" href="AVRGSM__com_8h.html#a7">COM_init</a>( 51 );         <span class="comment">//9600bps @ 8MHz</span>00213     <a class="code" href="button_8c.html#a3">Button_Init</a>( );         <span class="comment">// Initialize pin change interrupt on joystick</span>00214     <a class="code" href="LCD__driver_8c.html#a11">LCD_Init</a>( );            <span class="comment">// initialize the LCD</span>00215 }</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 + -