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

📄 at.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0094 0EC0              xjmp L1
 0096           L14:
 0096                   .dbline 82
 0096           ;               case AT_Disc1           :       return SendDebugRStr(ATStageStr8);
 0096 00E0              ldi R16,<_ATStageStr8
 0098 10E0              ldi R17,>_ATStageStr8
 009A 0E940000          xcall _SendDebugRStr
 009E 09C0              xjmp L1
 00A0           L15:
 00A0                   .dbline 83
 00A0           ;               case AT_Disc2           :       return SendDebugRStr(ATStageStr9);
 00A0 00E0              ldi R16,<_ATStageStr9
 00A2 10E0              ldi R17,>_ATStageStr9
 00A4 0E940000          xcall _SendDebugRStr
 00A8 04C0              xjmp L1
 00AA           L4:
 00AA                   .dbline 84
 00AA           ;               default                         :       return SendDebugRStr(ATStageStr10);
 00AA 00E0              ldi R16,<_ATStageStr10
 00AC 10E0              ldi R17,>_ATStageStr10
 00AE 0E940000          xcall _SendDebugRStr
 00B2                   .dbline -2
 00B2           L1:
 00B2 0E940000          xcall pop_gset1
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbend
 00B8                   .dbfunc e AT_Stage _AT_Stage fV
 00B8           ;          Stage -> R20
                        .even
 00B8           _AT_Stage::
 00B8 0E940000          xcall push_gset1
 00BC 402F              mov R20,R16
 00BE                   .dbline -1
 00BE                   .dbline 93
 00BE           ;       }
 00BE           ; }
 00BE           ; 
 00BE           ; #endif
 00BE           ; 
 00BE           ; //*************************************************************************************
 00BE           ; 
 00BE           ; void AT_Stage(T_AT_Stage Stage)
 00BE           ; {     // set the AT modem stage
 00BE                   .dbline 94
 00BE           ;       if (AT.Stage == Stage) return;  // no change
 00BE 20900300          lds R2,_AT+3
 00C2 2416              cp R2,R20
 00C4 09F4              brne L17
 00C6                   .dbline 94
 00C6 0CC0              xjmp L16
 00C8           L17:
 00C8                   .dbline 96
 00C8           ;                                                                       //
 00C8           ;       AT.Stage = Stage;                               //
 00C8 40930300          sts _AT+3,R20
 00CC                   .dbline 97
 00CC           ;       AT.Retries = 0;                                 //
 00CC 2224              clr R2
 00CE 20920000          sts _AT,R2
 00D2                   .dbline 98
 00D2           ;       u16_Put(&AT.Retry_Timer, 0);    // send next thing asap
 00D2 2227              clr R18
 00D4 3327              clr R19
 00D6 00E0              ldi R16,<_AT+1
 00D8 10E0              ldi R17,>_AT+1
 00DA 0E940000          xcall _u16_Put
 00DE                   .dbline 101
 00DE           ; 
 00DE           ;       #ifdef Debug
 00DE           ;               AT_DisplayStage();
 00DE 90DF              xcall _AT_DisplayStage
 00E0                   .dbline -2
 00E0           L16:
 00E0 0E940000          xcall pop_gset1
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r Stage 20 c
 00E6                   .dbend
 00E6                   .dbfunc e AT_Start _AT_Start fc
                        .even
 00E6           _AT_Start::
 00E6                   .dbline -1
 00E6                   .dbline 106
 00E6           ;       #endif
 00E6           ; }
 00E6           ; 
 00E6           ; bool AT_Start(void)
 00E6           ; {     // start a connection attempt
 00E6                   .dbline 108
 00E6           ;       // call this from the executive when you want to connect
 00E6           ;       if (AT.Stage != AT_Idle) return false;                          // already busy with the modem
 00E6 20900300          lds R2,_AT+3
 00EA 2220              tst R2
 00EC 11F0              breq L23
 00EE                   .dbline 108
 00EE 0027              clr R16
 00F0 09C0              xjmp L22
 00F2           L23:
 00F2                   .dbline 110
 00F2           ;       #ifdef WindowsPPP
 00F2           ;               AT_Stage(AT_PPP);                                                               //
 00F2 05E0              ldi R16,5
 00F4 E1DF              xcall _AT_Stage
 00F6                   .dbline 111
 00F6           ;               PPP_Start(PPP_Rom_Username, PPP_Rom_Password);  // start a PPP session
 00F6 20E0              ldi R18,<_PPP_Rom_Password
 00F8 30E0              ldi R19,>_PPP_Rom_Password
 00FA 00E0              ldi R16,<_PPP_Rom_Username
 00FC 10E0              ldi R17,>_PPP_Rom_Username
 00FE 0E940000          xcall _PPP_Start
 0102                   .dbline 112
 0102           ;               return true;                                                                    //
 0102 01E0              ldi R16,1
 0104                   .dbline -2
 0104           L22:
 0104                   .dbline 0 ; func end
 0104 0895              ret
 0106                   .dbend
 0106                   .dbfunc e AT_End _AT_End fV
                        .even
 0106           _AT_End::
 0106                   .dbline -1
 0106                   .dbline 126
 0106           ;       #else
 0106           ;               AT_Stage(AT_DialInit1);                                                 //
 0106           ;                                                                                                               //
 0106           ;               MainBufferWr_Rx = 0;                                                    //
 0106           ;               MainBufferWr_Tx = 0;                                                    //
 0106           ;               UART1_RxBufferRd = 0;                                                   //
 0106           ;               UART1_RxBufferWr = 0;                                                   //
 0106           ;                                                                                                               //
 0106           ;               return true;                                                                    //
 0106           ;       #endif
 0106           ; }
 0106           ; 
 0106           ; void AT_End(void)
 0106           ; {     // terminate a connection
 0106                   .dbline 127
 0106           ;       if (PPP.Stage != PPPS_None)
 0106 20900900          lds R2,_PPP+9
 010A 2220              tst R2
 010C 19F0              breq L27
 010E                   .dbline 128
 010E           ;       {       // terminate the PPP first
 010E                   .dbline 129
 010E           ;               PPP_End();
 010E 0E940000          xcall _PPP_End
 0112                   .dbline 130
 0112           ;               return;
 0112 02C0              xjmp L26
 0114           L27:
 0114                   .dbline 134
 0114           ;       }
 0114           ; 
 0114           ;       #ifdef WindowsPPP
 0114           ;               AT_Stage(AT_Idle);
 0114 0027              clr R16
 0116 D0DF              xcall _AT_Stage
 0118                   .dbline -2
 0118           L26:
 0118                   .dbline 0 ; func end
 0118 0895              ret
 011A                   .dbend
 011A                   .dbfunc e AT_AddNewRxByte _AT_AddNewRxByte fV
 011A           ;              c -> R0
                        .even
 011A           _AT_AddNewRxByte::
 011A                   .dbline -1
 011A                   .dbline 161
 011A           ;       #else
 011A           ;               switch (AT.Stage)
 011A           ;               {
 011A           ;                       case AT_Idle            :       break;
 011A           ;                       case AT_DialInit1       :       AT_Stage(AT_Idle);
 011A           ;                                                                       break;
 011A           ;                       case AT_DialInit2       :       AT_Stage(AT_Idle);
 011A           ;                                                                       break;
 011A           ;                       case AT_DialInit3       :       AT_Stage(AT_Idle);
 011A           ;                                                                       break;
 011A           ;                       case AT_Dial            :       AT_Stage(AT_Disc2);
 011A           ;                                                                       break;
 011A           ;                       case AT_PPP                     :       PPP_End();
 011A           ;                                                                       break;
 011A           ;                       case AT_Disc1           :       break;                          // already trying to disconnect
 011A           ;                       case AT_Disc2           :       break;                          // already trying to disconnect
 011A           ;                       default                         :       AT_Stage(AT_Idle);
 011A           ;                                                                       break;
 011A           ;               }
 011A           ;       #endif
 011A           ; }
 011A           ; 
 011A           ; //*************************************************************************************
 011A           ; // call this when we have a new byte received from the modem - call from the executive
 011A           ; 
 011A           ; void AT_AddNewRxByte(u8 c)
 011A           ; {
 011A                   .dbline -2
 011A           L30:
 011A                   .dbline 0 ; func end
 011A 0895              ret
 011C                   .dbsym l c 0 c
 011C                   .dbend
 011C                   .dbfunc e AT_10ms_Timer _AT_10ms_Timer fV
                        .even
 011C           _AT_10ms_Timer::
 011C                   .dbline -1
 011C                   .dbline 249
 011C           ;       #ifndef WindowsPPP
 011C           ;               bool    ok = false;
 011C           ;               bool    error = false;
 011C           ;               bool    ring = false;

⌨️ 快捷键说明

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