📄 radio.lis
字号:
0590 000F lsl R16
0592 111F rol R17
0594 080F add R16,R24
0596 191F adc R17,R25
0598 0E940000 xcall _EEPROMReadBytes
059C .dbline 337
; }
059C 24C0 xjmp L130
059E L129:
059E .dbline 339
; else
; {
059E .dbline 340
; if( station_no == 0 )
059E 20900000 lds R2,_station_no
05A2 2220 tst R2
05A4 21F4 brne L135
05A6 .dbline 341
; station_no = MAX_FM_STATION-1;
05A6 8DE1 ldi R24,29
05A8 80930000 sts _station_no,R24
05AC 05C0 xjmp L136
05AE L135:
05AE .dbline 343
; else
; station_no--;
05AE 80910000 lds R24,_station_no
05B2 8150 subi R24,1
05B4 80930000 sts _station_no,R24
05B8 L136:
05B8 .dbline 344
; EEPROMwrite((int)&(gps.ps_fm_no),station_no);
05B8 20910000 lds R18,_station_no
05BC 00E0 ldi R16,<_gps+2
05BE 10E0 ldi R17,>_gps+2
05C0 0E940000 xcall _EEPROMwrite
05C4 .dbline 345
; EEPROM_READ((int)&gps.ps_fm_station[station_no],freq);
05C4 82E0 ldi R24,2
05C6 90E0 ldi R25,0
05C8 8883 std y+0,R24
05CA 9983 std y+1,R25
05CC 20E0 ldi R18,<_freq
05CE 30E0 ldi R19,>_freq
05D0 80E0 ldi R24,<_gps+8
05D2 90E0 ldi R25,>_gps+8
05D4 00910000 lds R16,_station_no
05D8 1127 clr R17
05DA 000F lsl R16
05DC 111F rol R17
05DE 080F add R16,R24
05E0 191F adc R17,R25
05E2 0E940000 xcall _EEPROMReadBytes
05E6 .dbline 346
05E6 L130:
05E6 .dbline 346
; };
05E6 .dbline 347
; save_fre();
05E6 0CDD xcall _save_fre
05E8 .dbline 348
; init_radio();
05E8 0E940000 xcall _init_radio
05EC .dbline 349
; display_type = DIS_FREQUENCY;
05EC 2224 clr R2
05EE 20920000 sts _display_type,R2
05F2 .dbline 350
; break;
05F2 35C2 xjmp L26
05F4 L139:
05F4 .dbline 354
;
; case RD_SKIPF:
; //if(is_search_all_station||is_autosearching) brea
; is_autosearching = 0;
05F4 2224 clr R2
05F6 20920000 sts _is_autosearching,R2
05FA .dbline 355
; g_ui_tmp_msg_cnt = 10;
05FA 8AE0 ldi R24,10
05FC 80930000 sts _g_ui_tmp_msg_cnt,R24
0600 .dbline 356
; if(amfm_flag)
0600 20900000 lds R2,_amfm_flag
0604 2220 tst R2
0606 F9F0 breq L140
0608 .dbline 357
; {
0608 .dbline 358
; station_no=(station_no+1)%MAX_AM_STATION;
0608 14E1 ldi R17,20
060A 00910000 lds R16,_station_no
060E 0F5F subi R16,255 ; addi 1
0610 0E940000 xcall mod8u
0614 00930000 sts _station_no,R16
0618 .dbline 359
; EEPROMwrite((int)&(gps.ps_am_no),station_no);
0618 202F mov R18,R16
061A 00E0 ldi R16,<_gps+3
061C 10E0 ldi R17,>_gps+3
061E 0E940000 xcall _EEPROMwrite
0622 .dbline 360
; EEPROM_READ((int)&gps.ps_am_station[station_no],freq);
0622 82E0 ldi R24,2
0624 90E0 ldi R25,0
0626 8883 std y+0,R24
0628 9983 std y+1,R25
062A 20E0 ldi R18,<_freq
062C 30E0 ldi R19,>_freq
062E 80E0 ldi R24,<_gps+68
0630 90E0 ldi R25,>_gps+68
0632 00910000 lds R16,_station_no
0636 1127 clr R17
0638 000F lsl R16
063A 111F rol R17
063C 080F add R16,R24
063E 191F adc R17,R25
0640 0E940000 xcall _EEPROMReadBytes
0644 .dbline 361
; }
0644 1EC0 xjmp L141
0646 L140:
0646 .dbline 363
; else
; {
0646 .dbline 364
; station_no=(station_no+1)%MAX_FM_STATION;
0646 1EE1 ldi R17,30
0648 00910000 lds R16,_station_no
064C 0F5F subi R16,255 ; addi 1
064E 0E940000 xcall mod8u
0652 00930000 sts _station_no,R16
0656 .dbline 365
; EEPROMwrite((int)&(gps.ps_fm_no),station_no);
0656 202F mov R18,R16
0658 00E0 ldi R16,<_gps+2
065A 10E0 ldi R17,>_gps+2
065C 0E940000 xcall _EEPROMwrite
0660 .dbline 366
; EEPROM_READ((int)&gps.ps_fm_station[station_no],freq);
0660 82E0 ldi R24,2
0662 90E0 ldi R25,0
0664 8883 std y+0,R24
0666 9983 std y+1,R25
0668 20E0 ldi R18,<_freq
066A 30E0 ldi R19,>_freq
066C 80E0 ldi R24,<_gps+8
066E 90E0 ldi R25,>_gps+8
0670 00910000 lds R16,_station_no
0674 1127 clr R17
0676 000F lsl R16
0678 111F rol R17
067A 080F add R16,R24
067C 191F adc R17,R25
067E 0E940000 xcall _EEPROMReadBytes
0682 .dbline 367
; }
0682 L141:
0682 .dbline 368
; save_fre();
0682 BEDC xcall _save_fre
0684 .dbline 369
; init_radio();
0684 0E940000 xcall _init_radio
0688 .dbline 370
; display_type = DIS_FREQUENCY;
0688 2224 clr R2
068A 20920000 sts _display_type,R2
068E .dbline 371
; break;
068E E7C1 xjmp L26
0690 L146:
0690 .dbline 374
;
; case RD_STORE:
; if(is_autosearching) break;
0690 20900000 lds R2,_is_autosearching
0694 2220 tst R2
0696 09F0 breq L147
0698 .dbline 374
0698 E2C1 xjmp L26
069A L147:
069A .dbline 375
; if(display_type != RADIO_STORE)
069A 80910000 lds R24,_display_type
069E 8E30 cpi R24,14
06A0 81F1 breq L149
06A2 .dbline 376
; {
06A2 .dbline 378
; // flashtime = 0;
; display_type = RADIO_STORE;
06A2 8EE0 ldi R24,14
06A4 80930000 sts _display_type,R24
06A8 .dbline 379
; radio_count = station_no+2;
06A8 80910000 lds R24,_station_no
06AC 9927 clr R25
06AE 0296 adiw R24,2
06B0 90930100 sts _radio_count+1,R25
06B4 80930000 sts _radio_count,R24
06B8 .dbline 380
; if(amfm_flag)
06B8 20900000 lds R2,_amfm_flag
06BC 2220 tst R2
06BE 79F0 breq L151
06C0 .dbline 381
; {
06C0 .dbline 382
; if(radio_count>MAX_AM_STATION)
06C0 84E1 ldi R24,20
06C2 90E0 ldi R25,0
06C4 30900100 lds R3,_radio_count+1
06C8 20900000 lds R2,_radio_count
06CC 8215 cp R24,R2
06CE 9305 cpc R25,R3
06D0 A0F4 brsh L152
06D2 .dbline 383
; radio_count = 1;
06D2 81E0 ldi R24,1
06D4 90930100 sts _radio_count+1,R25
06D8 80930000 sts _radio_count,R24
06DC .dbline 385
;
; }
06DC 0EC0 xjmp L152
06DE L151:
06DE .dbline 387
; else
; {
06DE .dbline 388
; if(radio_count>MAX_FM_STATION)
06DE 8EE1 ldi R24,30
06E0 90E0 ldi R25,0
06E2 30900100 lds R3,_radio_count+1
06E6 20900000 lds R2,_radio_count
06EA 8215 cp R24,R2
06EC 9305 cpc R25,R3
06EE 28F4 brsh L155
06F0 .dbline 389
; radio_count = 1;
06F0 81E0 ldi R24,1
06F2 90930100 sts _radio_count+1,R25
06F6 80930000 sts _radio_count,R24
06FA L155:
06FA .dbline 391
;
; }
06FA L152:
06FA .dbline 392
; g_ui_tmp_msg_cnt = 20;
06FA 84E1 ldi R24,20
06FC 80930000 sts _g_ui_tmp_msg_cnt,R24
0700 .dbline 395
;
; //store_bit = 0;
; }
0700 AEC1 xjmp L26
0702 L149:
0702 .dbline 397
; else
; {
0702 .dbline 398
; if(radio_count!=0)
0702 30900100 lds R3,_radio_count+1
0706 20900000 lds R2,_radio_count
070A 2220 tst R2
070C 19F4 brne X13
070E 3320 tst R3
0710 09F4 brne X14
0712 37C0 xjmp L157
0714 X14:
0714 X13:
0714 .dbline 399
; {
0714 .dbline 400
; station_no=radio_count-1;
0714 C101 movw R24,R2
0716 0197 sbiw R24,1
0718 80930000 sts _station_no,R24
071C .dbline 401
; if(amfm_flag)
071C 20900000 lds R2,_amfm_flag
0720 2220 tst R2
0722 C1F0 breq L159
0724 .dbline 402
; {
0724 .dbline 403
; EEPROM_WRITE((int)&gps.ps_am_station[station_no],freq);
0724 82E0 ldi R24,2
0726 90E0 ldi R25,0
0728 8883 std y+0,R24
072A 9983 std y+1,R25
072C 20E0 ldi R18,<_freq
072E 30E0 ldi R19,>_freq
0730 80E0 ldi R24,<_gps+68
0732 90E0 ldi R25,>_gps+68
0734 00910000 lds R16,_station_no
0738 1127 clr R17
073A 000F lsl R16
073C 111F rol R17
073E 080F add R16,R24
0740 191F adc R17,R25
0742 0E940000 xcall _EEPROMWriteBytes
0746 .dbline 404
; EEPROMwrite((int)&gps.ps_am_no,station_no);
0746 20910000 lds R18,_station_no
074A 00E0 ldi R16,<_gps+3
074C 10E0 ldi R17,>_gps+3
074E 0E940000 xcall _EEPROMwrite
0752 .dbline 405
; }
0752 17C0 xjmp L160
0754 L159:
0754 .dbline 407
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -