📄 bu1923a.lis
字号:
; }
;
; }
0564 L60:
0564 0E940000 xcall pop_gset3
0568 .dbline 0 ; func end
0568 0895 ret
056A .dbfunc s rds_handler _rds_handler fI
.area func_lit(rom, con, rel)
0014 L227:
0014 2B03 .word `L140
0016 6F03 .word `L156
0018 7D03 .word `L158
001A D703 .word `L188
.area text(rom, con, rel)
056A .dbfile D:\avrmcu\AT980\bu1923\bu1923a.c
; temp_buffer -> y+0
; i -> R20
; temp_buffer0_flag -> R22
.even
056A _rds_handler::
056A 0E940000 xcall push_gset2
056E 2897 sbiw R28,8
0570 .dbline -1
0570 .dbline 345
;
;
; void rds_handler(void)
; {
0570 .dbline 358
; register unsigned char temp_buffer0_flag;
; unsigned int temp_buffer[4];
; register unsigned char i;
;
; //if(rds_delay)
; //{
; //rds_delay--;
; //if(!rds_delay)
; //rds_status = 0;
; //};
;
; //printf("rds handler\n");
; if(pty_is_searching==2)
0570 80910400 lds R24,_pty_is_searching
0574 8230 cpi R24,2
0576 59F5 brne L114
0578 .dbline 359
; {
0578 .dbline 360
; if(search_ok)
0578 20900000 lds R2,_search_ok
057C 2220 tst R2
057E 39F1 breq L116
0580 .dbline 361
; {
0580 .dbline 362
; if(pty_search_delay)
0580 20902000 lds R2,_rds_dis_string+2
0584 2220 tst R2
0586 01F1 breq L118
0588 .dbline 363
; {
0588 .dbline 364
; if((rds_status&PTY_EXIST)&&(pty_dis_type == pty_search_type))
0588 20900300 lds R2,_rds_status
058C 21FE sbrs R2,1
058E 0AC0 rjmp L121
0590 20901F00 lds R2,_rds_dis_string+1
0594 30901E00 lds R3,_rds_dis_string
0598 3214 cp R3,R2
059A 21F4 brne L121
059C .dbline 365
; {
059C .dbline 366
; pty_is_searching = 0;
059C 2224 clr R2
059E 20920400 sts _pty_is_searching,R2
05A2 .dbline 368
; //pty_search_delay = 0;
; return;
05A2 6AC1 xjmp L113
05A4 L121:
05A4 .dbline 369
; };
05A4 .dbline 370
; pty_search_delay--;
05A4 80912000 lds R24,_rds_dis_string+2
05A8 8150 subi R24,1
05AA 80932000 sts _rds_dis_string+2,R24
05AE .dbline 372
; // printf("pty=");debug_out_wx(pty_search_delay);printf("\n");
; if(!pty_search_delay)
05AE 282E mov R2,R24
05B0 2220 tst R2
05B2 69F4 brne L119
05B4 .dbline 373
; {
05B4 .dbline 374
; search_ok = 0;
05B4 2224 clr R2
05B6 20920000 sts _search_ok,R2
05BA .dbline 376
; //search_dir = 1;
; is_autosearching = 1;
05BA 81E0 ldi R24,1
05BC 80930000 sts _is_autosearching,R24
05C0 .dbline 377
; autosrch_step = AUTOSRCH_STEP5;
05C0 84E0 ldi R24,4
05C2 80930000 sts _autosrch_step,R24
05C6 .dbline 378
; };
05C6 .dbline 378
05C6 .dbline 379
; }
05C6 03C0 xjmp L119
05C8 L118:
05C8 .dbline 381
; else
; {
05C8 .dbline 383
; // printf("kkk\n");
; pty_search_delay = 67;
05C8 83E4 ldi R24,67
05CA 80932000 sts _rds_dis_string+2,R24
05CE .dbline 384
; }
05CE L119:
05CE .dbline 385
; }
05CE L116:
05CE .dbline 386
; }
05CE L114:
05CE .dbline 387
; CLI();
05CE F894 cli
05D0 .dbline 388
; if(rds_buffer0_flag&BD_WORD_UPDATE)
05D0 80911C00 lds R24,_rds_buffer0_flag
05D4 807A andi R24,160
05D6 8823 tst R24
05D8 F1F0 breq L129
05DA .dbline 389
; {
05DA .dbline 390
; temp_buffer0_flag = rds_buffer0_flag;
05DA 60911C00 lds R22,_rds_buffer0_flag
05DE .dbline 391
; temp_buffer[0] = rds_buffer[0];
05DE 30901500 lds R3,_rds_buffer+1
05E2 20901400 lds R2,_rds_buffer
05E6 2882 std y+0,R2
05E8 3982 std y+1,R3
05EA .dbline 392
; temp_buffer[1] = rds_buffer[1];
05EA 30901700 lds R3,_rds_buffer+2+1
05EE 20901600 lds R2,_rds_buffer+2
05F2 2A82 std y+2,R2
05F4 3B82 std y+3,R3
05F6 .dbline 393
; temp_buffer[2] = rds_buffer[2];
05F6 30901900 lds R3,_rds_buffer+4+1
05FA 20901800 lds R2,_rds_buffer+4
05FE 2C82 std y+4,R2
0600 3D82 std y+5,R3
0602 .dbline 394
; temp_buffer[3] = rds_buffer[3];
0602 30901B00 lds R3,_rds_buffer+6+1
0606 20901A00 lds R2,_rds_buffer+6
060A 2E82 std y+6,R2
060C 3F82 std y+7,R3
060E .dbline 395
; rds_buffer0_flag = 0;
060E 2224 clr R2
0610 20921C00 sts _rds_buffer0_flag,R2
0614 .dbline 396
; }
0614 02C0 xjmp L130
0616 L129:
0616 .dbline 398
; else
; {
0616 .dbline 399
; SEI();
0616 7894 sei
0618 .dbline 400
; return;
0618 2FC1 xjmp L113
061A L130:
061A .dbline 401
; };
061A .dbline 402
; SEI();
061A 7894 sei
061C .dbline 404
; //printf("get_a_block=");debug_out_wx(temp_buffer[0]);printf("\n");
; rds_delay = 60;
061C 8CE3 ldi R24,60
061E 80930000 sts _rds_delay,R24
0622 .dbline 405
; switch(rds_display_type)
0622 40910000 lds R20,_rds_display_type
0626 5527 clr R21
0628 4130 cpi R20,1
062A E0E0 ldi R30,0
062C 5E07 cpc R21,R30
062E 0CF4 brge X12
0630 23C1 xjmp L137
0632 X12:
0632 84E0 ldi R24,4
0634 90E0 ldi R25,0
0636 8417 cp R24,R20
0638 9507 cpc R25,R21
063A 0CF4 brge X13
063C 1DC1 xjmp L137
063E X13:
063E 80E0 ldi R24,<L227
0640 90E0 ldi R25,>L227
0642 FA01 movw R30,R20
0644 3197 sbiw R30,1
0646 EE0F lsl R30
0648 FF1F rol R31
064A E80F add R30,R24
064C F91F adc R31,R25
064E 0590 lpm R0,Z+
0650 1490 lpm R1,Z
0652 F001 movw R30,R0
0654 0994 ijmp
0656 X11:
0656 .dbline 406
; {
0656 L140:
0656 .dbline 409
; case DIS_PS_NAME:
; //printf("DIS_PS_NAME\n");
; if((high_byte(temp_buffer,1)&0xf0)==0) //if((temp_buffer[1]&0xf000)==0) //GROUP 0
0656 8B81 ldd R24,y+3
0658 807F andi R24,240
065A 8823 tst R24
065C 09F0 breq X14
065E 0CC1 xjmp L138
0660 X14:
0660 .dbline 410
; {
0660 .dbline 411
; rds_status = PS_NAME_EXIST;
0660 81E0 ldi R24,1
0662 80930300 sts _rds_status,R24
0666 .dbline 413
; //printf("is 0 group\n");
; i = low_byte(temp_buffer,1)&0x03;//((unsigned char)temp_buffer[1])&0x03;
0666 4A81 ldd R20,y+2
0668 4370 andi R20,3
066A .dbline 416
; //printf("temp_buffer[2]=");debug_out_wx(temp_buffer[2]);printf("\n");
; //printf("temp_buffer[4]=");debug_out_wx(temp_buffer[4]);printf("\n");
; i <<=1;
066A 440F lsl R20
066C .dbline 417
; rds_dis_buffer[i] = high_byte(temp_buffer,3);//(unsigned char) (temp_buffer[3]>>8);
066C 80E0 ldi R24,<_rds_dis_buffer
066E 90E0 ldi R25,>_rds_dis_buffer
0670 E42F mov R30,R20
0672 FF27 clr R31
0674 E80F add R30,R24
0676 F91F adc R31,R25
0678 2F80 ldd R2,y+7
067A 2082 std z+0,R2
067C .dbline 418
; i++;
067C 4395 inc R20
067E .dbline 419
; rds_dis_buffer[i] = low_byte(temp_buffer,3);
067E E42F mov R30,R20
0680 FF27 clr R31
0682 E80F add R30,R24
0684 F91F adc R31,R25
0686 2E80 ldd R2,y+6
0688 2082 std z+0,R2
068A .dbline 421
; //if(i<2)
; rds_dis_control |=(1<<i);
068A 01E0 ldi R16,1
068C 142F mov R17,R20
068E 0E940000 xcall lsl8
0692 20901D00 lds R2,_rds_dis_control
0696 202A or R2,R16
0698 20921D00 sts _rds_dis_control,R2
069C .dbline 425
; //else
; //rds_dis_control |=(1<<i);
; //printf("rds_display_contr=");debug_out_wx(rds_dis_control);printf("\n");
; if((rds_dis_control==0xaa)&&(i>6))
069C 822D mov R24,R2
069E 8A3A cpi R24,170
06A0 09F0 breq X15
06A2 EAC0 xjmp L138
06A4 X15:
06A4 86E0 ldi R24,6
06A6 8417 cp R24,R20
06A8 08F0 brlo X16
06AA E6C0 xjmp L1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -