📄 main.lis
字号:
0344 L92:
0344 .dbline 284
0344 ; else
0344 ; YLed_Off;
0344 C69A sbi 0x18,6
0346 .dbline 285
0346 ; break;
0346 L85:
0346 .dbline 302
0346 ; }
0346 ;
0346 ; // CTS0 state
0346 ; // if (CTS0) //
0346 ; // GLed_Off; //
0346 ; // else //
0346 ; // GLed_On; //
0346 ;
0346 ; // CTS1 state
0346 ; // if (CTS1) //
0346 ; // GLed_Off; //
0346 ; // else //
0346 ; // GLed_On; //
0346 ;
0346 ; // TCP socket state
0346 ; #ifdef IncludeTCP
0346 ; if (TCP_Socket != NULL) //
0346 20900000 lds R2,_TCP_Socket
034A 30900100 lds R3,_TCP_Socket+1
034E 2220 tst R2
0350 11F4 brne X6
0352 3320 tst R3
0354 61F1 breq L95
0356 X6:
0356 .dbline 303
0356 ; { //
0356 .dbline 304
0356 ; switch (TCP_Socket->Stage) //
0356 E0910000 lds R30,_TCP_Socket
035A F0910100 lds R31,_TCP_Socket+1
035E 4081 ldd R20,z+0
0360 5527 clr R21
0362 4030 cpi R20,0
0364 4507 cpc R20,R21
0366 49F0 breq L100
0368 X7:
0368 4130 cpi R20,1
036A E0E0 ldi R30,0
036C 5E07 cpc R21,R30
036E 39F0 breq L101
0370 4430 cpi R20,4
0372 E0E0 ldi R30,0
0374 5E07 cpc R21,R30
0376 59F0 breq L104
0378 12C0 xjmp L97
037A X8:
037A .dbline 305
037A ; { //
037A L100:
037A .dbline 306
037A ; case TCP_CLOSED : GLed_Off; //
037A C79A sbi 0x18,7
037C .dbline 307
037C ; break; //
037C 19C0 xjmp L96
037E L101:
037E .dbline 308
037E ; case TCP_LISTEN : if (TimerIntCounter & 0x20) //
037E 20900000 lds R2,_TimerIntCounter
0382 25FE sbrs R2,5
0384 02C0 rjmp L102
0386 .dbline 309
0386 ; GLed_On; //
0386 C798 cbi 0x18,7
0388 13C0 xjmp L96
038A L102:
038A .dbline 311
038A ; else //
038A ; GLed_Off; //
038A C79A sbi 0x18,7
038C .dbline 312
038C ; break; //
038C 11C0 xjmp L96
038E L104:
038E .dbline 313
038E ; case TCP_ESTABLISHED : if (TimerIntCounter & 0x50) //
038E 80910000 lds R24,_TimerIntCounter
0392 8075 andi R24,80
0394 11F0 breq L105
0396 .dbline 314
0396 ; GLed_On; //
0396 C798 cbi 0x18,7
0398 0BC0 xjmp L96
039A L105:
039A .dbline 316
039A ; else //
039A ; GLed_Off; //
039A C79A sbi 0x18,7
039C .dbline 317
039C ; break; //
039C 09C0 xjmp L96
039E L97:
039E .dbline 318
039E ; default : if (TimerIntCounter & 0x10) //
039E 20900000 lds R2,_TimerIntCounter
03A2 24FE sbrs R2,4
03A4 02C0 rjmp L107
03A6 .dbline 319
03A6 ; GLed_On; //
03A6 C798 cbi 0x18,7
03A8 03C0 xjmp L96
03AA L107:
03AA .dbline 321
03AA ; else //
03AA ; GLed_Off; //
03AA C79A sbi 0x18,7
03AC .dbline 322
03AC ; break; //
03AC .dbline 324
03AC ; } //
03AC ; } //
03AC 01C0 xjmp L96
03AE L95:
03AE .dbline 326
03AE ; else //
03AE ; GLed_Off; //
03AE C79A sbi 0x18,7
03B0 L96:
03B0 .dbline 336
03B0 80910000 lds R24,_WatchdogCounter
03B4 8130 cpi R24,1
03B6 21F4 brne L109
03B8 .dbline 337
03B8 .dbline 338
03B8 A895 wdr
03BA .dbline 339
03BA 2224 clr R2
03BC 20920000 sts _WatchdogCounter,R2
03C0 .dbline 340
03C0 L109:
03C0 .dbline -2
03C0 L58:
03C0 2196 adiw R28,1
03C2 0E940000 xcall pop_gset2
03C6 0E940000 xcall pop_lset
03CA .dbline 0 ; func end
03CA 1895 reti
03CC .dbsym r w 22 s
03CC .dbsym r i 20 s
03CC .dbend
.area vector(rom, abs)
.org 72
0048 0C94E601 jmp _isr_uart0_rx
.area text(rom, con, rel)
03CC .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\main.c
03CC .dbfunc e isr_uart0_rx _isr_uart0_rx fV
.even
03CC _isr_uart0_rx::
03CC 0E940000 xcall push_lset
03D0 .dbline -1
03D0 .dbline 353
03D0 ; #else
03D0 ; GLed_Off; //
03D0 ; #endif
03D0 ;
03D0 ; // *************************
03D0 ; // keep the watchdog at bay.
03D0 ; // the WatchdogCounter variable is set in the executive - this makes resetting the WD a co-op affair between the exec and this interrupt.
03D0 ; // keep this code as the last thing to be done in the interrupt - incase a loop/dead-lock occurs before we get this far
03D0 ;
03D0 ; if (WatchdogCounter == 1) //
03D0 ; { //
03D0 ; Reset_WD(); // Keep the watchdog at bay
03D0 ; WatchdogCounter = 0; //
03D0 ; }
03D0 ; }
03D0 ;
03D0 ; // *********************************************************************************
03D0 ; // Uart-0 Rx Interrupt routine
03D0 ;
03D0 ; #ifdef CPU_eZ8
03D0 ; #pragma interrupt
03D0 ; #endif
03D0 ; #ifdef CPU_ATmega128
03D0 ; #pragma interrupt_handler isr_uart0_rx:19
03D0 ; #endif
03D0 ; void isr_uart0_rx(void)
03D0 ; {
03D0 .dbline 358
03D0 ; #ifdef CPU_eZ8
03D0 ; UART0_RxBuffer[UART0_RxBufferWr++] = U0D; // save new byte into the buffer
03D0 ; #endif
03D0 ; #ifdef CPU_ATmega128
03D0 ; UART0_RxBuffer[UART0_RxBufferWr++] = UDR0; // save new byte into the buffer
03D0 20900000 lds R2,_UART0_RxBufferWr
03D4 3324 clr R3
03D6 822D mov R24,R2
03D8 8F5F subi R24,255 ; addi 1
03DA 80930000 sts _UART0_RxBufferWr,R24
03DE 80E0 ldi R24,<_UART0_RxBuffer
03E0 90E0 ldi R25,>_UART0_RxBuffer
03E2 E22D mov R30,R2
03E4 FF27 clr R31
03E6 E80F add R30,R24
03E8 F91F adc R31,R25
03EA 2CB0 in R2,0xc
03EC 2082 std z+0,R2
03EE .dbline 360
03EE ; #endif
03EE ; if (UART0_RxBufferWr >= sizeof(UART0_RxBuffer)) UART0_RxBufferWr = 0; // wap awound
03EE 80910000 lds R24,_UART0_RxBufferWr
03F2 8032 cpi R24,32
03F4 18F0 brlo L112
03F6 .dbline 360
03F6 2224 clr R2
03F8 20920000 sts _UART0_RxBufferWr,R2
03FC L112:
03FC .dbline 363
03FC ;
03FC ; #ifdef ConsoleHandShaking
03FC ; HardwareFlowControl(UART0); // tell em to hold it - if need be
03FC 0027 clr R16
03FE 0E940000 xcall _HardwareFlowControl
0402 .dbline -2
0402 L111:
0402 0E940000 xcall pop_lset
0406 .dbline 0 ; func end
0406 1895 reti
0408 .dbend
.area vector(rom, abs)
.org 120
0078 0C940402 jmp _isr_uart1_rx
.area text(rom, con, rel)
0408 .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\main.c
0408 .dbfunc e isr_uart1_rx _isr_uart1_rx fV
.even
0408 _isr_uart1_rx::
0408 0E940000 xcall push_lset
040C .dbline -1
040C .dbline 377
040C ; #endif
040C ; }
040C ;
040C ; // *********************************************************************************
040C ; // Uart-1 Rx Interrupt routine
040C ;
040C ; #ifdef CPU_eZ8
040C ; #pragma interrupt
040C ; #endif
040C ; #ifdef CPU_ATmega128
040C ; #pragma interrupt_handler isr_uart1_rx:31
040C ; #endif
040C ; void isr_uart1_rx(void)
040C ; {
040C .dbline 382
040C ; #ifdef CPU_eZ8
040C ; UART1_RxBuffer[UART1_RxBufferWr++] = U1D; // save new byte into the buffer
040C ; #endif
040C ; #ifdef CPU_ATmega128
040C ; UART1_RxBuffer[UART1_RxBufferWr++] = UDR1; // save new byte into the buffer
040C 20900000 lds R2,_UART1_RxBufferWr
0410 3324 clr R3
0412 822D mov R24,R2
0414 8F5F subi R24,255 ; addi 1
0416 80930000 sts _UART1_RxBufferWr,R24
041A 80E0 ldi R24,<_UART1_RxBuffer
041C 90E0 ldi R25,>_UART1_RxBuffer
041E E22D mov R30,R2
0420 FF27 clr R31
0422 E80F add R30,R24
0424 F91F adc R31,R25
0426 20909C00 lds R2,156
042A 2082 std z+0,R2
042C .dbline 384
042C ; #endif
042C ; if (UART1_RxBufferWr >= sizeof(UART1_RxBuffer)) UART1_RxBufferWr = 0; // wap awound
042C 80910000 lds R24,_UART1_RxBufferWr
0430 8036 cpi R24,96
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -