📄 bu1923a.lis
字号:
0230 L44:
0230 .dbline 180
; else
; {
0230 .dbline 181
; bit_count = 0;
0230 2224 clr R2
0232 20920D00 sts _bit_count,R2
0236 .dbline 182
; rds_step = SYC_B_STEP;
0236 83E0 ldi R24,3
0238 80930500 sts _rds_step,R24
023C .dbline 184
; //rds_data.syc_flag = 1;
; };
023C .dbline 184
023C .dbline 185
; break;
023C 44C0 xjmp L28
023E L46:
023E .dbline 187
; case SYC_B_STEP:
; if(temp_syc_word == B_SYC_WORD)
023E 043D cpi R16,212
0240 E3E0 ldi R30,3
0242 1E07 cpc R17,R30
0244 39F4 brne L47
0246 .dbline 188
; {
0246 .dbline 189
; bit_count = 0;
0246 2224 clr R2
0248 20920D00 sts _bit_count,R2
024C .dbline 190
; rds_step = SYC_C_STEP;
024C 84E0 ldi R24,4
024E 80930500 sts _rds_step,R24
0252 .dbline 192
; //rds_data.syc_flag = 1;
; }
0252 39C0 xjmp L28
0254 L47:
0254 .dbline 194
; else
; rds_step = SEARCH_SYC_STEP;
0254 81E0 ldi R24,1
0256 80930500 sts _rds_step,R24
025A .dbline 195
; break;
025A 35C0 xjmp L28
025C L49:
025C .dbline 198
; case SYC_C_STEP:
; case SYC_C1_STEP:
; if((temp_syc_word == C_SYC_WORD)||(temp_syc_word == C1_SYC_WORD))
025C 0C35 cpi R16,92
025E E2E0 ldi R30,2
0260 1E07 cpc R17,R30
0262 21F0 breq L52
0264 0C3C cpi R16,204
0266 E3E0 ldi R30,3
0268 1E07 cpc R17,R30
026A C1F4 brne L50
026C L52:
026C .dbline 199
; {
026C .dbline 200
; bit_count = 0;
026C 2224 clr R2
026E 20920D00 sts _bit_count,R2
0272 .dbline 201
; rds_step = SYC_D_STEP;
0272 86E0 ldi R24,6
0274 80930500 sts _rds_step,R24
0278 .dbline 202
; if(temp_syc_word == C_SYC_WORD)
0278 0C35 cpi R16,92
027A E2E0 ldi R30,2
027C 1E07 cpc R17,R30
027E 39F4 brne L53
0280 .dbline 203
; c_word_val = C_OFF_WORD;
0280 88E6 ldi R24,616
0282 92E0 ldi R25,2
0284 90930200 sts _c_word_val+1,R25
0288 80930100 sts _c_word_val,R24
028C 1CC0 xjmp L28
028E L53:
028E .dbline 205
; else
; c_word_val = C1_OFF_WORD;
028E 80E5 ldi R24,848
0290 93E0 ldi R25,3
0292 90930200 sts _c_word_val+1,R25
0296 80930100 sts _c_word_val,R24
029A .dbline 207
; //rds_data.syc_flag = 1;
; }
029A 15C0 xjmp L28
029C L50:
029C .dbline 209
; else
; rds_step = SEARCH_SYC_STEP;
029C 81E0 ldi R24,1
029E 80930500 sts _rds_step,R24
02A2 .dbline 210
; break;
02A2 11C0 xjmp L28
02A4 L55:
02A4 .dbline 212
; case SYC_D_STEP:
; if(temp_syc_word == D_SYC_WORD)
02A4 0835 cpi R16,88
02A6 E2E0 ldi R30,2
02A8 1E07 cpc R17,R30
02AA 51F4 brne L56
02AC .dbline 213
; {
02AC .dbline 214
; bit_count = 0;
02AC 2224 clr R2
02AE 20920D00 sts _bit_count,R2
02B2 .dbline 215
; rds_step = FULL_SYCA_STEP;
02B2 87E0 ldi R24,7
02B4 80930500 sts _rds_step,R24
02B8 .dbline 216
; rds_data.syc_flag = 1;
02B8 81E0 ldi R24,1
02BA 80930B00 sts _rds_data+10,R24
02BE .dbline 218
; //rds_data.err_flag = 0;
; }
02BE 03C0 xjmp L28
02C0 L56:
02C0 .dbline 220
; else
; rds_step = SEARCH_SYC_STEP;
02C0 81E0 ldi R24,1
02C2 80930500 sts _rds_step,R24
02C6 .dbline 221
; break;
02C6 L27:
02C6 L28:
02C6 .dbline -2
02C6 .dbline 223
; }
; }
02C6 L22:
02C6 0E940000 xcall pop_gset2
02CA .dbline 0 ; func end
02CA 0895 ret
02CC .dbsym r p 20 pi
02CC .dbsym r temp_syc_word 16 i
02CC .dbsym r i 22 c
02CC .dbfunc s get_rds_block _get_rds_block fI
.area func_lit(rom, con, rel)
000C L112:
000C E901 .word `L70
000E 0802 .word `L75
0010 2702 .word `L81
0012 4A02 .word `L87
.area text(rom, con, rel)
02CC .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
.even
02CC _get_rds_block::
02CC 0E940000 xcall push_gset3
02D0 .dbline -1
02D0 .dbline 226
;
; void get_rds_block(void)
; {
02D0 .dbline 228
;
; if(bit_count==0)
02D0 20900D00 lds R2,_bit_count
02D4 2220 tst R2
02D6 31F4 brne L61
02D8 .dbline 229
; {
02D8 .dbline 230
; syndrome_reg = 0;
02D8 2224 clr R2
02DA 3324 clr R3
02DC 30920F00 sts _syndrome_reg+1,R3
02E0 20920E00 sts _syndrome_reg,R2
02E4 .dbline 231
; }
02E4 L61:
02E4 .dbline 233
;
; if(rds_bit_buffer&0x1)
02E4 00E0 ldi R16,<L16
02E6 10E0 ldi R17,>L16
02E8 0E940000 xcall lpm32
02EC 50906C00 lds R5,_rds_bit_buffer+2+1
02F0 40906B00 lds R4,_rds_bit_buffer+2
02F4 30906A00 lds R3,_rds_bit_buffer+1
02F8 20906900 lds R2,_rds_bit_buffer
02FC 2022 and R2,R16
02FE 3122 and R3,R17
0300 4222 and R4,R18
0302 5322 and R5,R19
0304 00E0 ldi R16,<L11
0306 10E0 ldi R17,>L11
0308 0E940000 xcall lpm32
030C 2016 cp R2,R16
030E 3106 cpc R3,R17
0310 4206 cpc R4,R18
0312 5306 cpc R5,R19
0314 B1F0 breq L63
0316 .dbline 234
; syndrome_reg ^= matrix_H[bit_count];
0316 80E0 ldi R24,<_matrix_H
0318 90E0 ldi R25,>_matrix_H
031A E0910D00 lds R30,_bit_count
031E FF27 clr R31
0320 EE0F lsl R30
0322 FF1F rol R31
0324 E80F add R30,R24
0326 F91F adc R31,R25
0328 0590 lpm R0,Z+
032A 1490 lpm R1,Z
032C F001 movw R30,R0
032E 30900F00 lds R3,_syndrome_reg+1
0332 20900E00 lds R2,_syndrome_reg
0336 2E26 eor R2,R30
0338 3F26 eor R3,R31
033A 30920F00 sts _syndrome_reg+1,R3
033E 20920E00 sts _syndrome_reg,R2
0342 L63:
0342 .dbline 236
;
; bit_count++;
0342 80910D00 lds R24,_bit_count
0346 8F5F subi R24,255 ; addi 1
0348 80930D00 sts _bit_count,R24
034C .dbline 248
; /*if(bit_count>16)
; {
; }
; if(bit_count<=16)
; {
; };
; if(bit_count=16)
; {
; off_word_bit = 0x200;
; };*/
;
; if(bit_count==26)
034C 8A31 cpi R24,26
034E 09F0 breq X8
0350 09C1 xjmp L65
0352 X8:
0352 .dbline 249
; {
0352 .dbline 250
; bit_count = 0;
0352 2224 clr R2
0354 20920D00 sts _bit_count,R2
0358 .dbline 251
; buffer_reg = (rds_bit_buffer>>10);
0358 8AE0 ldi R24,10
035A 90E0 ldi R25,0
035C 50906C00 lds R5,_rds_bit_buffer+2+1
0360 40906B00 lds R4,_rds_bit_buffer+2
0364 30906A00 lds R3,_rds_bit_buffer+1
0368 20906900 lds R2,_rds_bit_buffer
036C 8A93 st -y,R24
036E 8101 movw R16,R2
0370 9201 movw R18,R4
0372 0E940000 xcall lsr32
0376 10931100 sts _buffer_reg+1,R17
037A 00931000 sts _buffer_reg,R16
037E 30931300 sts _buffer_reg+2+1,R19
0382 20931200 sts _buffer_reg+2,R18
0386 .dbline 252
; rds_bit_buffer = 0;
0386 00E0 ldi R16,<L11
0388 10E0 ldi R17,>L11
038A 0E940000 xcall lpm32
038E 10936A00 sts _rds_bit_buffer+1,R17
0392 00936900 sts _rds_bit_buffer,R16
0396 30936C00 sts _rds_bit_buffer+2+1,R19
039A 20936B00 sts _rds_bit_buffer+2,R18
039E .dbline 254
; //error check;
; switch(rds_step)
039E A0900500 lds R10,_rds_step
03A2 BB24 clr R11
03A4 87E0 ldi R24,7
03A6 90E0 ldi R25,0
03A8 A816 cp R10,R24
03AA B906 cpc R11,R25
03AC 0CF4 brge X9
03AE DAC0 xjmp L67
03B0 X9:
03B0 8AE0 ldi R24,10
03B2 8A15 cp R24,R10
03B4 9B05 cpc R25,R11
03B6 0CF4 brge X10
03B8 D5C0 xjmp L67
03BA X10:
03BA 80E0 ldi R24,<L112
03BC 90E0 ldi R25,>L112
03BE F501 movw R30,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -