📄 ytcpg01.lis
字号:
01A0 0BC0 rjmp L54
01A2 X0:
01A2 .dbline 194
01A2 ; {
01A2 L55:
01A2 .dbline 196
01A2 L56:
01A2 .dbline 195
01A2 5D9B sbis 0xb,5
01A4 FECF rjmp L55
01A6 .dbline 197
01A6 80E0 ldi R24,<_TXbuf
01A8 90E0 ldi R25,>_TXbuf
01AA E42F mov R30,R20
01AC FF27 clr R31
01AE E80F add R30,R24
01B0 F91F adc R31,R25
01B2 2080 ldd R2,z+0
01B4 2CB8 out 0xc,R2
01B6 .dbline 198
01B6 L52:
01B6 .dbline 193
01B6 4395 inc R20
01B8 L54:
01B8 .dbline 193
01B8 4F30 cpi R20,15
01BA 98F3 brlo L56
01BC .dbline 200
01BC ; while(!(UCSRA & (1<<UDRE)))
01BC ; ;
01BC ; UDR=TXbuf[i]; //TX the data of rx
01BC ; }//for (i=0;i<15;i++)
01BC ;
01BC ; }//if(CRCT.txCRC[0]==RXbuf[12] && CRCT.txCRC[1]==RXbuf[13])
01BC L38:
01BC .dbline 203
01BC ;
01BC ;
01BC ; }//if(RXbuf[1]==BOARDID && RXbuf[12]=='$')
01BC L30:
01BC .dbline 205
01BC 2224 clr R2
01BE 20920200 sts _RXbuf,R2
01C2 .dbline 206
01C2 20920300 sts _RXbuf+1,R2
01C6 .dbline 207
01C6 20921000 sts _RXbuf+14,R2
01CA .dbline 208
01CA L28:
01CA .dbline -2
01CA L23:
01CA 00D0 rcall pop_gset1
01CC 00D0 rcall pop_lset
01CE .dbline 0 ; func end
01CE 1895 reti
01D0 .dbsym r i 20 c
01D0 .dbend
01D0 .dbfunc e TXbufINIT _TXbufINIT fV
01D0 ; i -> R16
.even
01D0 _TXbufINIT::
01D0 .dbline -1
01D0 .dbline 214
01D0 ;
01D0 ; RXbuf[0]=0;
01D0 ; RXbuf[1]=0;
01D0 ; RXbuf[14]=0;
01D0 ; } //if(RXstartFlag==1 && RXCR==13 && RXbuf[0]=='%')
01D0 ;
01D0 ; } //void
01D0 ;
01D0 ;
01D0 ; void TXbufINIT(void)
01D0 ; {
01D0 .dbline 217
01D0 ;
01D0 ; unsigned char i;
01D0 ; TXbuf[0]=37;
01D0 85E2 ldi R24,37
01D2 80931400 sts _TXbuf,R24
01D6 .dbline 218
01D6 ; TXbuf[1]=49;
01D6 81E3 ldi R24,49
01D8 80931500 sts _TXbuf+1,R24
01DC .dbline 219
01DC ; TXbuf[2]=49;
01DC 80931600 sts _TXbuf+2,R24
01E0 .dbline 220
01E0 ; TXbuf[14]=36;
01E0 84E2 ldi R24,36
01E2 80932200 sts _TXbuf+14,R24
01E6 .dbline 221
01E6 ; for(i=3;i<12;i++)
01E6 03E0 ldi R16,3
01E8 0FC0 rjmp L67
01EA L64:
01EA .dbline 222
01EA .dbline 223
01EA 80E0 ldi R24,<_OPDATA-3
01EC 90E0 ldi R25,>_OPDATA-3
01EE E02F mov R30,R16
01F0 FF27 clr R31
01F2 E80F add R30,R24
01F4 F91F adc R31,R25
01F6 2080 ldd R2,z+0
01F8 80E0 ldi R24,<_TXbuf
01FA 90E0 ldi R25,>_TXbuf
01FC E02F mov R30,R16
01FE FF27 clr R31
0200 E80F add R30,R24
0202 F91F adc R31,R25
0204 2082 std z+0,R2
0206 .dbline 224
0206 L65:
0206 .dbline 221
0206 0395 inc R16
0208 L67:
0208 .dbline 221
0208 0C30 cpi R16,12
020A 78F3 brlo L64
020C .dbline 225
020C ; {
020C ; TXbuf[i]=OPDATA[i-3];
020C ; }//for(i=2;i<10;i++)
020C ; CRCT.TXCRC=0;
020C 2224 clr R2
020E 3324 clr R3
0210 30920100 sts _CRCT+1,R3
0214 20920000 sts _CRCT,R2
0218 .dbline 226
0218 ; for(i=0;i<12;i++)
0218 0027 clr R16
021A 13C0 rjmp L72
021C L69:
021C .dbline 227
021C .dbline 228
021C 80E0 ldi R24,<_TXbuf
021E 90E0 ldi R25,>_TXbuf
0220 E02F mov R30,R16
0222 FF27 clr R31
0224 E80F add R30,R24
0226 F91F adc R31,R25
0228 2080 ldd R2,z+0
022A 3324 clr R3
022C 40900000 lds R4,_CRCT
0230 50900100 lds R5,_CRCT+1
0234 420C add R4,R2
0236 531C adc R5,R3
0238 50920100 sts _CRCT+1,R5
023C 40920000 sts _CRCT,R4
0240 .dbline 229
0240 L70:
0240 .dbline 226
0240 0395 inc R16
0242 L72:
0242 .dbline 226
0242 0C30 cpi R16,12
0244 58F3 brlo L69
0246 .dbline 230
0246 ; {
0246 ; CRCT.TXCRC=CRCT.TXCRC+TXbuf[i];
0246 ; }//f
0246 ; TXbuf[12]=CRCT.txCRC[0];
0246 20900000 lds R2,_CRCT
024A 20922000 sts _TXbuf+12,R2
024E .dbline 231
024E ; TXbuf[13]=CRCT.txCRC[1];
024E 20900100 lds R2,_CRCT+1
0252 20922100 sts _TXbuf+13,R2
0256 .dbline -2
0256 L60:
0256 .dbline 0 ; func end
0256 0895 ret
0258 .dbsym r i 16 c
0258 .dbend
0258 .dbfunc e main _main fV
0258 ; ia -> R20
.even
0258 _main::
0258 .dbline -1
0258 .dbline 235
0258 ; }
0258 ;
0258 ; void main()
0258 ; {
0258 .dbline 237
0258 ; unsigned char ia;
0258 ; port_init();
0258 EEDE rcall _port_init
025A .dbline 238
025A ; SPI_MasterInit();
025A FDDE rcall _SPI_MasterInit
025C .dbline 239
025C ; uart_init();
025C 10DF rcall _uart_init
025E .dbline 243
025E ;
025E ;
025E ;
025E ; for(ia=0;ia<13;ia++)
025E 4427 clr R20
0260 09C0 rjmp L80
0262 L77:
0262 .dbline 244
0262 .dbline 245
0262 80E0 ldi R24,<_OPDATA
0264 90E0 ldi R25,>_OPDATA
0266 E42F mov R30,R20
0268 FF27 clr R31
026A E80F add R30,R24
026C F91F adc R31,R25
026E 2224 clr R2
0270 2082 std z+0,R2
0272 .dbline 246
0272 L78:
0272 .dbline 243
0272 4395 inc R20
0274 L80:
0274 .dbline 243
0274 4D30 cpi R20,13
0276 A8F3 brlo L77
0278 .dbline 249
0278 ; {
0278 ; OPDATA[ia]=0;
0278 ; }
0278 ;
0278 ;
0278 ; CLRON;
0278 C098 cbi 0x18,0
027A .dbline 250
027A ; delayXms(100);
027A 04E6 ldi R16,100
027C 10E0 ldi R17,0
027E CEDE rcall _delayXms
0280 .dbline 251
0280 ; CLROFF;
0280 C09A sbi 0x18,0
0282 .dbline 252
0282 ; PORTC=0xff;
0282 8FEF ldi R24,255
0284 85BB out 0x15,R24
0286 .dbline 253
0286 ; delayXms(1000);
0286 08EE ldi R16,1000
0288 13E0 ldi R17,3
028A C8DE rcall _delayXms
028C .dbline 254
028C ; PORTC=0;
028C 2224 clr R2
028E 25BA out 0x15,R2
0290 .dbline 255
0290 ; SPI_Tran();
0290 E5DE rcall _SPI_Tran
0292 .dbline 256
0292 ; delayXms(500);
0292 04EF ldi R16,500
0294 11E0 ldi R17,1
0296 C2DE rcall _delayXms
0298 .dbline 257
0298 ; SEI();
0298 7894 sei
029A L81:
029A .dbline 259
029A .dbline 260
029A .dbline 261
029A .dbline 262
029A .dbline 264
029A L82:
029A .dbline 258
029A FFCF rjmp L81
029C X7:
029C .dbline -2
029C L76:
029C .dbline 0 ; func end
029C 0895 ret
029E .dbsym r ia 20 c
029E .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\job\elite\云台控制器\avr\ytcpg01.c
0000 _CRCT::
0000 .blkb 2
0002 .dbunion 0 2 mdd
0002 .dbfield 0 TXCRC i
0002 .dbfield 0 txCRC A[2:2]c
0002 .dbend
0002 .dbsym e CRCT _CRCT S[mdd]
0002 _RXbuf::
0002 .blkb 18
0014 .dbsym e RXbuf _RXbuf A[18:18]c
0014 _TXbuf::
0014 .blkb 18
0026 .dbsym e TXbuf _TXbuf A[18:18]c
0026 _OPDATA::
0026 .blkb 12
0032 .dbsym e OPDATA _OPDATA A[12:12]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -