📄 interrupt.lis
字号:
01A0 042F mov R16,R20
01A2 .dbline -2
01A2 L23:
01A2 00D0 rcall pop_gset1
01A4 .dbline 0 ; func end
01A4 0895 ret
01A6 .dbsym r temp 20 c
01A6 .dbend
01A6 .dbfunc e Clear_GpsData _Clear_GpsData fV
01A6 ; j -> R16
.even
01A6 _Clear_GpsData::
01A6 .dbline -1
01A6 .dbline 79
01A6 ; }
01A6 ;
01A6 ; void Clear_GpsData(void)
01A6 ; {
01A6 .dbline 81
01A6 ; uchar j;
01A6 ; for(j=0; j<26; j++)
01A6 0027 clr R16
01A8 09C0 rjmp L32
01AA L29:
01AA .dbline 82
01AA .dbline 83
01AA 80E0 ldi R24,<_JWDINFO
01AC 90E0 ldi R25,>_JWDINFO
01AE E02F mov R30,R16
01B0 FF27 clr R31
01B2 E80F add R30,R24
01B4 F91F adc R31,R25
01B6 80E3 ldi R24,48
01B8 8083 std z+0,R24
01BA .dbline 84
01BA L30:
01BA .dbline 81
01BA 0395 inc R16
01BC L32:
01BC .dbline 81
01BC 0A31 cpi R16,26
01BE A8F3 brlo L29
01C0 .dbline -2
01C0 L28:
01C0 .dbline 0 ; func end
01C0 0895 ret
01C2 .dbsym r j 16 c
01C2 .dbend
01C2 .dbfunc e Read_GpsData _Read_GpsData fV
01C2 ; temp -> R20
.even
01C2 _Read_GpsData::
01C2 00D0 rcall push_gset1
01C4 .dbline -1
01C4 .dbline 89
01C4 ; {
01C4 ; JWDINFO[j] ='0';
01C4 ; }
01C4 ; }
01C4 ;
01C4 ; //$PTNLRTF,A,A,273306,04,3,2222.28064,N,11332.80025,E,00011,+000.000,+000.000,+000.000*55
01C4 ; void Read_GpsData(void)
01C4 ; {
01C4 .dbline 90
01C4 ; uchar temp = 0;
01C4 4427 clr R20
01C6 .dbline 91
01C6 ; temp = Read_byte();
01C6 BCDF rcall _Read_byte
01C8 402F mov R20,R16
01CA .dbline 92
01CA ; if(temp=='$')
01CA 0432 cpi R16,36
01CC B1F4 brne L34
01CE .dbline 93
01CE ; {
01CE .dbline 94
01CE ; temp = Read_byte();
01CE B8DF rcall _Read_byte
01D0 402F mov R20,R16
01D2 .dbline 95
01D2 ; if(temp == 'G')
01D2 0734 cpi R16,71
01D4 91F4 brne L36
01D6 .dbline 96
01D6 ; {
01D6 .dbline 97
01D6 ; temp = Read_byte();
01D6 B4DF rcall _Read_byte
01D8 402F mov R20,R16
01DA .dbline 98
01DA ; if(temp == 'P')
01DA 0035 cpi R16,80
01DC 71F4 brne L38
01DE .dbline 99
01DE ; {
01DE .dbline 100
01DE ; temp = Read_byte();
01DE B0DF rcall _Read_byte
01E0 402F mov R20,R16
01E2 .dbline 101
01E2 ; if(temp == 'G')
01E2 0734 cpi R16,71
01E4 51F4 brne L40
01E6 .dbline 102
01E6 ; {
01E6 .dbline 103
01E6 ; temp = Read_byte();
01E6 ACDF rcall _Read_byte
01E8 402F mov R20,R16
01EA .dbline 104
01EA ; if(temp == 'L')
01EA 0C34 cpi R16,76
01EC 31F4 brne L42
01EE .dbline 105
01EE ; {
01EE .dbline 106
01EE ; temp = Read_byte();
01EE A8DF rcall _Read_byte
01F0 402F mov R20,R16
01F2 .dbline 107
01F2 ; if(temp == 'L')
01F2 0C34 cpi R16,76
01F4 11F4 brne L44
01F6 .dbline 108
01F6 ; { LED1_ON;
01F6 .dbline 108
01F6 2898 cbi 0x5,0
01F8 .dbline 109
01F8 ; Parse_GpsData();
01F8 02D0 rcall _Parse_GpsData
01FA .dbline 111
01FA ; // LED1_OFF;
01FA ; }
01FA L44:
01FA .dbline 112
01FA ; }
01FA L42:
01FA .dbline 113
01FA ; }
01FA L40:
01FA .dbline 114
01FA ; }
01FA L38:
01FA .dbline 115
01FA ; }
01FA L36:
01FA .dbline 116
01FA L34:
01FA .dbline -2
01FA L33:
01FA 00D0 rcall pop_gset1
01FC .dbline 0 ; func end
01FC 0895 ret
01FE .dbsym r temp 20 c
01FE .dbend
01FE .dbfunc e Parse_GpsData _Parse_GpsData fV
01FE ; temp -> R20
01FE ; i -> R20
.even
01FE _Parse_GpsData::
01FE 00D0 rcall push_gset1
0200 .dbline -1
0200 .dbline 121
0200 ; }
0200 ; }
0200 ;
0200 ;
0200 ; void Parse_GpsData(void)
0200 ; { uchar i, temp;
0200 .dbline 122
0200 ; Clear_GpsData();
0200 D2DF rcall _Clear_GpsData
0202 .dbline 123
0202 ; Read_byte();
0202 9EDF rcall _Read_byte
0204 .dbline 124
0204 ; temp = Read_byte();
0204 9DDF rcall _Read_byte
0206 402F mov R20,R16
0208 .dbline 125
0208 ; if(',' != temp) {
0208 0C32 cpi R16,44
020A 31F1 breq L47
020C .dbline 125
020C .dbline 126
020C ; JWDINFO[0] = temp;
020C 40933900 sts _JWDINFO,R20
0210 .dbline 127
0210 ; for(i=0; i<25; i++)
0210 4427 clr R20
0212 09C0 rjmp L52
0214 L49:
0214 .dbline 128
0214 .dbline 129
0214 95DF rcall _Read_byte
0216 80E0 ldi R24,<_JWDINFO+1
0218 90E0 ldi R25,>_JWDINFO+1
021A E42F mov R30,R20
021C FF27 clr R31
021E E80F add R30,R24
0220 F91F adc R31,R25
0222 0083 std z+0,R16
0224 .dbline 130
0224 L50:
0224 .dbline 127
0224 4395 inc R20
0226 L52:
0226 .dbline 127
0226 4931 cpi R20,25
0228 A8F3 brlo L49
022A .dbline 131
022A ; {
022A ; JWDINFO[i+1] = Read_byte();
022A ; }
022A ; if(((JWDINFO[11]=='S')||(JWDINFO[11]=='N'))&&((JWDINFO[25]=='E')||(JWDINFO[25]=='W')))
022A 80914400 lds R24,_JWDINFO+11
022E 8335 cpi R24,83
0230 11F0 breq L60
0232 8E34 cpi R24,78
0234 89F4 brne L54
0236 L60:
0236 80915200 lds R24,_JWDINFO+25
023A 8534 cpi R24,69
023C 11F0 breq L61
023E 8735 cpi R24,87
0240 59F4 brne L54
0242 L61:
0242 .dbline 132
0242 ; { JWD_ptr=JWDINFO;
0242 .dbline 132
0242 80E0 ldi R24,<_JWDINFO
0244 90E0 ldi R25,>_JWDINFO
0246 90930100 sts _JWD_ptr+1,R25
024A 80930000 sts _JWD_ptr,R24
024E .dbline 133
024E ; Fbit.Send_GInfoFlag=TRUE;}
024E 80917000 lds R24,_Fbit+2
0252 8160 ori R24,1
0254 80937000 sts _Fbit+2,R24
0258 .dbline 133
0258 L54:
0258 .dbline 135
0258 L47:
0258 .dbline -2
0258 L46:
0258 00D0 rcall pop_gset1
025A .dbline 0 ; func end
025A 0895 ret
025C .dbsym r temp 20 c
025C .dbsym r i 20 c
025C .dbend
025C .dbfunc e Send_GpsInfo _Send_GpsInfo fV
025C ; i -> R20
.even
025C _Send_GpsInfo::
025C 00D0 rcall push_gset1
025E .dbline -1
025E .dbline 138
025E ; //else{Clear_GpsData();}
025E ; }
025E ; }
025E ;
025E ; void Send_GpsInfo(void){
025E .dbline 140
025E ; uchar i;
025E ; if(!Fbit.Send_GInfoFlag)return;
025E 80917000 lds R24,_Fbit+2
0262 8170 andi R24,1
0264 09F4 brne L64
0266 .dbline 140
0266 3DC0 rjmp L63
0268 L64:
0268 .dbline 141
0268 ; Fbit.Send_GInfoFlag=FALSE;
0268 80917000 lds R24,_Fbit+2
026C 8E7F andi R24,254
026E 80937000 sts _Fbit+2,R24
0272 .dbline 142
0272 ; JWD_ptr=JWDINFO;
0272 80E0 ldi R24,<_JWDINFO
0274 90E0 ldi R25,>_JWDINFO
0276 90930100 sts _JWD_ptr+1,R25
027A 80930000 sts _JWD_ptr,R24
027E .dbline 143
027E 4427 clr R20
0280 25C0 rjmp L71
0282 L68:
0282 .dbline 143
0282 .dbline 144
0282 E0910000 lds R30,_JWD_ptr
0286 F0910100 lds R31,_JWD_ptr+1
028A 0081 ldd R16,z+0
028C 1127 clr R17
028E 00D0 rcall _CharTOASC
0290 .dbline 145
0290 82E0 ldi R24,2
0292 849F mul R24,R20
0294 F001 movw R30,R0
0296 80E0 ldi R24,<_DJWDINFO
0298 90E0 ldi R25,>_DJWDINFO
029A E80F add R30,R24
029C F91F adc R31,R25
029E 20900000 lds R2,_comm_t
02A2 2082 std z+0,R2
02A4 .dbline 146
02A4 82E0 ldi R24,2
02A6 849F mul R24,R20
02A8 F001 movw R30,R0
02AA 80E0 ldi R24,<_DJWDINFO+1
02AC 90E0 ldi R25,>_DJWDINFO+1
02AE E80F add R30,R24
02B0 F91F adc R31,R25
02B2 20900000 lds R2,_comm_b
02B6 2082 std z+0,R2
02B8 .dbline 147
02B8 80910000 lds R24,_JWD_ptr
02BC 90910100 lds R25,_JWD_ptr+1
02C0 0196 adiw R24,1
02C2 90930100 sts _JWD_ptr+1,R25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -