📄 bu1923a.lis
字号:
03C0 3797 sbiw R30,7
03C2 EE0F lsl R30
03C4 FF1F rol R31
03C6 E80F add R30,R24
03C8 F91F adc R31,R25
03CA 0590 lpm R0,Z+
03CC 1490 lpm R1,Z
03CE F001 movw R30,R0
03D0 0994 ijmp
03D2 X7:
03D2 .dbline 255
; {
03D2 L70:
03D2 .dbline 257
; case FULL_SYCA_STEP:
; if(syndrome_reg!=A_SYC_WORD)
03D2 90910F00 lds R25,_syndrome_reg+1
03D6 80910E00 lds R24,_syndrome_reg
03DA 883D cpi R24,216
03DC E3E0 ldi R30,3
03DE 9E07 cpc R25,R30
03E0 31F0 breq L71
03E2 .dbline 258
; {
03E2 .dbline 260
; //rds_data.err_flag |= A_WORD_ERR;
; rds_data.word_err_count++;
03E2 80910A00 lds R24,_rds_data+9
03E6 8F5F subi R24,255 ; addi 1
03E8 80930A00 sts _rds_data+9,R24
03EC .dbline 261
; }
03EC 0DC0 xjmp L72
03EE L71:
03EE .dbline 263
; else
; {
03EE .dbline 264
; rds_data.A_word = (unsigned int)buffer_reg;
03EE 30901100 lds R3,_buffer_reg+1
03F2 20901000 lds R2,_buffer_reg
03F6 30920200 sts _rds_data+1,R3
03FA 20920100 sts _rds_data,R2
03FE .dbline 265
; rds_data.err_flag |= A_WORD_UPDATE;
03FE 80910C00 lds R24,_rds_data+11
0402 8061 ori R24,16
0404 80930C00 sts _rds_data+11,R24
0408 .dbline 266
0408 L72:
0408 .dbline 266
; };
0408 .dbline 267
; rds_step = FULL_SYCB_STEP;
0408 88E0 ldi R24,8
040A 80930500 sts _rds_step,R24
040E .dbline 268
; break;
040E AAC0 xjmp L68
0410 L75:
0410 .dbline 270
; case FULL_SYCB_STEP:
; if(syndrome_reg!=B_SYC_WORD)
0410 90910F00 lds R25,_syndrome_reg+1
0414 80910E00 lds R24,_syndrome_reg
0418 843D cpi R24,212
041A E3E0 ldi R30,3
041C 9E07 cpc R25,R30
041E 31F0 breq L76
0420 .dbline 271
; {
0420 .dbline 273
; //rds_data.err_flag |= B_WORD_ERR;
; rds_data.word_err_count++;
0420 80910A00 lds R24,_rds_data+9
0424 8F5F subi R24,255 ; addi 1
0426 80930A00 sts _rds_data+9,R24
042A .dbline 274
; }
042A 0DC0 xjmp L77
042C L76:
042C .dbline 276
; else
; {
042C .dbline 277
; rds_data.B_word = (unsigned int)buffer_reg;
042C 30901100 lds R3,_buffer_reg+1
0430 20901000 lds R2,_buffer_reg
0434 30920400 sts _rds_data+2+1,R3
0438 20920300 sts _rds_data+2,R2
043C .dbline 278
; rds_data.err_flag |= B_WORD_UPDATE;
043C 80910C00 lds R24,_rds_data+11
0440 8062 ori R24,32
0442 80930C00 sts _rds_data+11,R24
0446 .dbline 279
; }
0446 L77:
0446 .dbline 280
; rds_step = FULL_SYCC_STEP;
0446 89E0 ldi R24,9
0448 80930500 sts _rds_step,R24
044C .dbline 281
; break;
044C 8BC0 xjmp L68
044E L81:
044E .dbline 283
; case FULL_SYCC_STEP:
; if((syndrome_reg!=C_SYC_WORD)&&(syndrome_reg!=C1_SYC_WORD))
044E 90910F00 lds R25,_syndrome_reg+1
0452 80910E00 lds R24,_syndrome_reg
0456 8C35 cpi R24,92
0458 E2E0 ldi R30,2
045A 9E07 cpc R25,R30
045C 51F0 breq L82
045E 8C3C cpi R24,204
0460 E3E0 ldi R30,3
0462 9E07 cpc R25,R30
0464 31F0 breq L82
0466 .dbline 284
; {
0466 .dbline 286
; //rds_data.err_flag |= C_WORD_ERR;
; rds_data.word_err_count++;
0466 80910A00 lds R24,_rds_data+9
046A 8F5F subi R24,255 ; addi 1
046C 80930A00 sts _rds_data+9,R24
0470 .dbline 287
; }
0470 0DC0 xjmp L83
0472 L82:
0472 .dbline 289
; else
; {
0472 .dbline 290
; rds_data.C_word = (unsigned int)buffer_reg;
0472 30901100 lds R3,_buffer_reg+1
0476 20901000 lds R2,_buffer_reg
047A 30920600 sts _rds_data+4+1,R3
047E 20920500 sts _rds_data+4,R2
0482 .dbline 291
; rds_data.err_flag |= C_WORD_UPDATE;
0482 80910C00 lds R24,_rds_data+11
0486 8064 ori R24,64
0488 80930C00 sts _rds_data+11,R24
048C .dbline 292
; }
048C L83:
048C .dbline 293
; rds_step = FULL_SYCD_STEP;
048C 8AE0 ldi R24,10
048E 80930500 sts _rds_step,R24
0492 .dbline 294
; break;
0492 68C0 xjmp L68
0494 L87:
0494 .dbline 296
; case FULL_SYCD_STEP:
; if(syndrome_reg!=D_SYC_WORD)
0494 90910F00 lds R25,_syndrome_reg+1
0498 80910E00 lds R24,_syndrome_reg
049C 8835 cpi R24,88
049E E2E0 ldi R30,2
04A0 9E07 cpc R25,R30
04A2 49F0 breq L88
04A4 .dbline 297
; {
04A4 .dbline 299
; //rds_data.err_flag |= D_WORD_ERR;
; rds_data.word_err_count++;
04A4 80910A00 lds R24,_rds_data+9
04A8 8F5F subi R24,255 ; addi 1
04AA 80930A00 sts _rds_data+9,R24
04AE .dbline 300
; rds_data.err_flag = 0;
04AE 2224 clr R2
04B0 20920C00 sts _rds_data+11,R2
04B4 .dbline 301
; }
04B4 0DC0 xjmp L89
04B6 L88:
04B6 .dbline 303
; else
; {
04B6 .dbline 304
; rds_data.D_word = (unsigned int)buffer_reg;
04B6 30901100 lds R3,_buffer_reg+1
04BA 20901000 lds R2,_buffer_reg
04BE 30920800 sts _rds_data+6+1,R3
04C2 20920700 sts _rds_data+6,R2
04C6 .dbline 305
; rds_data.err_flag |= D_WORD_UPDATE;
04C6 80910C00 lds R24,_rds_data+11
04CA 8068 ori R24,128
04CC 80930C00 sts _rds_data+11,R24
04D0 .dbline 306
04D0 L89:
04D0 .dbline 306
; };
04D0 .dbline 307
; rds_step = FULL_SYCA_STEP;
04D0 87E0 ldi R24,7
04D2 80930500 sts _rds_step,R24
04D6 .dbline 309
;
; rds_data.block_count++;
04D6 80910900 lds R24,_rds_data+8
04DA 8F5F subi R24,255 ; addi 1
04DC 80930900 sts _rds_data+8,R24
04E0 .dbline 313
; //if(rds_data.err_flag&0x0f)
; //rds_data.word_err_count++;
; //STORE RDS_BLOCK TO RDS BLOCK BUFFER
; rds_buffer0_flag = rds_data.err_flag;
04E0 20900C00 lds R2,_rds_data+11
04E4 20921C00 sts _rds_buffer0_flag,R2
04E8 .dbline 314
; rds_buffer[0] = rds_data.A_word;
04E8 30900200 lds R3,_rds_data+1
04EC 20900100 lds R2,_rds_data
04F0 30921500 sts _rds_buffer+1,R3
04F4 20921400 sts _rds_buffer,R2
04F8 .dbline 315
; rds_buffer[1] = rds_data.B_word;
04F8 30900400 lds R3,_rds_data+2+1
04FC 20900300 lds R2,_rds_data+2
0500 30921700 sts _rds_buffer+2+1,R3
0504 20921600 sts _rds_buffer+2,R2
0508 .dbline 316
; rds_buffer[2] = rds_data.C_word;
0508 30900600 lds R3,_rds_data+4+1
050C 20900500 lds R2,_rds_data+4
0510 30921900 sts _rds_buffer+4+1,R3
0514 20921800 sts _rds_buffer+4,R2
0518 .dbline 317
; rds_buffer[3] = rds_data.D_word;
0518 30900800 lds R3,_rds_data+6+1
051C 20900700 lds R2,_rds_data+6
0520 30921B00 sts _rds_buffer+6+1,R3
0524 20921A00 sts _rds_buffer+6,R2
0528 .dbline 319
; //CLEAR ERR_FLAG
; rds_data.err_flag = 0;
0528 2224 clr R2
052A 20920C00 sts _rds_data+11,R2
052E .dbline 322
;
; //Judge if losing syndrome; if yes,restart syndrome detecting
; if(rds_data.block_count>=30)
052E 8E31 cpi R24,30
0530 C8F0 brlo L68
0532 .dbline 323
; {
0532 .dbline 324
; if(rds_data.word_err_count>20)
0532 84E1 ldi R24,20
0534 20900A00 lds R2,_rds_data+9
0538 8215 cp R24,R2
053A 78F4 brsh L106
053C .dbline 325
; {
053C .dbline 326
; rds_step = SEARCH_SYC_STEP; //restart search syc word
053C 81E0 ldi R24,1
053E 80930500 sts _rds_step,R24
0542 .dbline 327
; rds_data.syc_flag = 0;
0542 2224 clr R2
0544 20920B00 sts _rds_data+10,R2
0548 .dbline 328
; rds_status = 0;
0548 20920300 sts _rds_status,R2
054C .dbline 329
; bit_count = 0;
054C 20920D00 sts _bit_count,R2
0550 .dbline 330
; syndrome_reg = 0;
0550 3324 clr R3
0552 30920F00 sts _syndrome_reg+1,R3
0556 20920E00 sts _syndrome_reg,R2
055A .dbline 331
055A L106:
055A .dbline 331
; };
055A .dbline 332
; rds_data.word_err_count = 0;
055A 2224 clr R2
055C 20920A00 sts _rds_data+9,R2
0560 .dbline 333
; rds_data.block_count = 0;
0560 20920900 sts _rds_data+8,R2
0564 .dbline 334
; };
0564 .dbline 334
0564 .dbline 336
;
; break;
0564 L67:
0564 L68:
0564 .dbline 338
0564 .dbline 339
0564 L65:
0564 .dbline -2
0564 .dbline 341
;
; };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -