📄 radio.s
字号:
; autosrch_step = AUTOSRCH_STEP5;
ldi R24,4
sts _autosrch_step,R24
.dbline 176
; g_ui_tmp_msg_cnt = 0;
sts _g_ui_tmp_msg_cnt,R2
.dbline 177
; pty_search_delay = 30;
ldi R24,30
sts _rds_dis_string+2,R24
.dbline 178
; };
.dbline 178
.dbline 179
; break;
xjmp L26
L78:
.dbline 186
; #endif
; case RD_AUTO_SEARCH_F:
; //case RD_FP_SEARCH_F:
; #ifdef SGJM_RDS
; //if(pty_is_searching) break;
; #endif
; display_type = DIS_FREQUENCY;
clr R2
sts _display_type,R2
.dbline 188
;
; g_ui_tmp_msg_cnt = 0;
sts _g_ui_tmp_msg_cnt,R2
.dbline 189
; search_ok = 0;
sts _search_ok,R2
.dbline 190
; search_dir = 1;
ldi R24,1
sts _search_dir,R24
.dbline 191
; autosrch_step = AUTOSRCH_STEP5;
ldi R24,4
sts _autosrch_step,R24
.dbline 192
; is_autosearching = 1;
ldi R24,1
sts _is_autosearching,R24
.dbline 193
; break;
xjmp L26
L79:
.dbline 198
; case RD_AUTO_SEARCH_R:
; #ifdef SGJM_RDS
; //if(pty_is_searching) break;
; #endif
; display_type = DIS_FREQUENCY;
clr R2
sts _display_type,R2
.dbline 199
; search_ok = 0;
sts _search_ok,R2
.dbline 200
; search_dir = 0;
sts _search_dir,R2
.dbline 201
; autosrch_step = AUTOSRCH_STEP5;
ldi R24,4
sts _autosrch_step,R24
.dbline 202
; is_autosearching = 1;;
ldi R24,1
sts _is_autosearching,R24
.dbline 202
.dbline 203
; g_ui_tmp_msg_cnt = 0;
sts _g_ui_tmp_msg_cnt,R2
.dbline 205
; //turnauto_serach
; break;
xjmp L26
L80:
.dbline 208
;
; case RD_FMAM:
; is_autosearching = 0;
clr R2
sts _is_autosearching,R2
.dbline 209
; radio_is_muted = 1;
ldi R24,1
sts _radio_is_muted,R24
.dbline 210
; mute_radio();
xcall _mute_radio
.dbline 212
; #ifdef SGJM_RDS
; close_rds();
xcall _close_rds
.dbline 213
; rds_display_type = 0;
clr R2
sts _rds_display_type,R2
.dbline 215
; #endif
; if(amfm_flag)
lds R2,_amfm_flag
tst R2
breq L81
.dbline 216
; {
.dbline 217
; amfm_flag = 0;
clr R2
sts _amfm_flag,R2
.dbline 218
; }
xjmp L82
L81:
.dbline 220
; else
; {
.dbline 221
; amfm_flag = 1;
ldi R24,1
sts _amfm_flag,R24
.dbline 222
L82:
.dbline 222
; };
.dbline 223
; EEPROMwrite((int)&(gps.ps_amfm_flag),amfm_flag);
lds R18,_amfm_flag
ldi R16,<_gps
ldi R17,>_gps
xcall _EEPROMwrite
.dbline 224
; init_radio();
xcall _init_radio
.dbline 226
;
; break;
xjmp L26
L83:
.dbline 229
;
; case RD_UP:
; if(display_type == RADIO_STORE)
lds R24,_display_type
cpi R24,14
brne L84
.dbline 230
; {
.dbline 231
; if(amfm_flag)
lds R2,_amfm_flag
tst R2
breq L86
.dbline 232
; radio_count = radio_count%MAX_AM_STATION;
ldi R18,20
ldi R19,0
lds R17,_radio_count+1
lds R16,_radio_count
xcall mod16u
sts _radio_count+1,R17
sts _radio_count,R16
xjmp L87
L86:
.dbline 234
; else
; radio_count = radio_count%MAX_FM_STATION;
ldi R18,30
ldi R19,0
lds R17,_radio_count+1
lds R16,_radio_count
xcall mod16u
sts _radio_count+1,R17
sts _radio_count,R16
L87:
.dbline 235
; radio_count = radio_count+1;
lds R25,_radio_count+1
lds R24,_radio_count
adiw R24,1
sts _radio_count+1,R25
sts _radio_count,R24
.dbline 236
; g_ui_tmp_msg_cnt = 30;
ldi R24,30
sts _g_ui_tmp_msg_cnt,R24
.dbline 237
; break;
xjmp L26
L84:
.dbline 240
; }
; #ifdef SGJM_RDS
; if(pty_is_searching == 1)
lds R24,_pty_is_searching
cpi R24,1
breq X8
xjmp L26
X8:
.dbline 241
; {
.dbline 243
;
; if(pty_search_type == PTY_ALARM)
lds R24,_rds_dis_string+1
cpi R24,31
brne L90
.dbline 244
; pty_search_type = PTY_NONE;
clr R2
sts _rds_dis_string+1,R2
xjmp L26
L90:
.dbline 245
; else if(pty_search_type == PTY_OTHER_M)
lds R24,_rds_dis_string+1
cpi R24,15
brne L94
.dbline 246
; pty_search_type = PTY_ALARM;
ldi R24,31
sts _rds_dis_string+1,R24
xjmp L26
L94:
.dbline 248
; else
; pty_search_type++;
lds R24,_rds_dis_string+1
subi R24,255 ; addi 1
sts _rds_dis_string+1,R24
.dbline 249
; }
.dbline 251
; #endif
; break;
xjmp L26
L99:
.dbline 254
;
; case RD_DOWN:
; if(display_type == RADIO_STORE)
lds R24,_display_type
cpi R24,14
brne L100
.dbline 255
; {
.dbline 256
; if(radio_count >0)
lds R3,_radio_count+1
lds R2,_radio_count
tst R2
brne X9
tst R3
breq L102
X9:
.dbline 257
; radio_count = radio_count-1;
movw R24,R2
sbiw R24,1
sts _radio_count+1,R25
sts _radio_count,R24
xjmp L103
L102:
.dbline 259
; else
; {
.dbline 260
; if(amfm_flag)
lds R2,_amfm_flag
tst R2
breq L104
.dbline 261
; radio_count = MAX_AM_STATION;
ldi R24,20
ldi R25,0
sts _radio_count+1,R25
sts _radio_count,R24
xjmp L105
L104:
.dbline 263
; else
; radio_count = MAX_FM_STATION;
ldi R24,30
ldi R25,0
sts _radio_count+1,R25
sts _radio_count,R24
L105:
.dbline 265
L103:
.dbline 265
;
; };
.dbline 266
; g_ui_tmp_msg_cnt = 30;
ldi R24,30
sts _g_ui_tmp_msg_cnt,R24
.dbline 267
; break;
xjmp L26
L100:
.dbline 270
; }
; #ifdef SGJM_RDS
; if(pty_is_searching == 1)
lds R24,_pty_is_searching
cpi R24,1
breq X10
xjmp L26
X10:
.dbline 271
; {
.dbline 273
;
; if(pty_search_type == PTY_ALARM)
lds R24,_rds_dis_string+1
cpi R24,31
brne L108
.dbline 274
; pty_search_type = PTY_OTHER_M;
ldi R24,15
sts _rds_dis_string+1,R24
xjmp L26
L108:
.dbline 275
; else if(pty_search_type == PTY_NONE)
lds R2,_rds_dis_string+1
tst R2
brne L112
.dbline 276
; pty_search_type = PTY_ALARM;
ldi R24,31
sts _rds_dis_string+1,R24
xjmp L26
L112:
.dbline 278
; else
; pty_search_type--;
lds R24,_rds_dis_string+1
subi R24,1
sts _rds_dis_string+1,R24
.dbline 279
; }
.dbline 282
; #endif
;
; break;
xjmp L26
L117:
.dbline 284
; case RD_STEP_B:
; search_dir = 0;
clr R2
sts _search_dir,R2
.dbline 285
; tuner_handsearch();
xcall _tuner_handsearch
.dbline 286
; save_fre();
xcall _save_fre
.dbline 287
; break;
xjmp L26
L118:
.dbline 290
; case RD_STEP_F:
; //is_autosearching = 0;
; search_dir = 1;
ldi R24,1
sts _search_dir,R24
.dbline 291
; tuner_handsearch();
xcall _tuner_handsearch
.dbline 292
; save_fre();
xcall _save_fre
.dbline 293
; break;
xjmp L26
L119:
.dbline 297
; case RD_STOP:
; if(
; #ifdef SGJM_RDS
; pty_is_searching
lds R2,_pty_is_searching
tst R2
brne L122
lds R2,_is_autosearching
tst R2
brne X11
xjmp L26
X11:
L122:
.dbline 301
; ||
; #endif
; is_autosearching)
; {
.dbline 303
; #ifdef SGJM_RDS
; pty_is_searching = 0;
clr R2
sts _pty_is_searching,R2
.dbline 305
; #endif
; radio_is_muted = 1;
ldi R24,1
sts _radio_is_muted,R24
.dbline 306
; mute_radio();
xcall _mute_radio
.dbline 307
; is_autosearching = 0;
clr R2
sts _is_autosearching,R2
.dbline 308
; switch_fmam();
xcall _switch_fmam
.dbline 309
; delay_ms(500);
ldi R16,500
ldi R17,1
xcall _delay_ms
.dbline 310
; radio_is_muted = 0;
clr R2
sts _radio_is_muted,R2
.dbline 311
; mute_radio();
xcall _mute_radio
.dbline 313
; //display_type = rds_display_type;
; g_ui_tmp_msg_cnt = 2;
ldi R24,2
sts _g_ui_tmp_msg_cnt,R24
.dbline 314
; };
.dbline 314
.dbline 315
; break;
xjmp L26
L123:
.dbline 317
; case RD_AUDIO:
; if(!amfm_flag)
lds R2,_amfm_flag
tst R2
breq X12
xjmp L26
X12:
.dbline 318
; {
.dbline 319
; if(is_stereo)
lds R2,_is_stereo
tst R2
breq L126
.dbline 320
; is_stereo = 0;
clr R2
sts _is_stereo,R2
xjmp L127
L126:
.dbline 322
; else
; is_stereo = 1;
ldi R24,1
sts _is_stereo,R24
L127:
.dbline 323
; switch_audio_channel();
xcall _switch_audio_channel
.dbline 324
; };
.dbline 324
.dbline 325
; break;
xjmp L26
L128:
.dbline 327
; case RD_SKIPB:
; is_autosearching = 0;
clr R2
sts _is_autosearching,R2
.dbline 328
; g_ui_tmp_msg_cnt = 10;
ldi R24,10
sts _g_ui_tmp_msg_cnt,R24
.dbline 329
; if(amfm_flag)
lds R2,_amfm_flag
tst R2
breq L129
.dbline 330
; {
.dbline 331
; if( station_no == 0 )
lds R2,_station_no
tst R2
brne L131
.dbline 332
; station_no = MAX_AM_STATION-1;
ldi R24,19
sts _station_no,R24
xjmp L132
L131:
.dbline 334
; else
; station_no--;
lds R24,_station_no
subi R24,1
sts _station_no,R24
L132:
.dbline 335
; EEPROMwrite((int)&(gps.ps_am_no),station_no);//ps_update_radio(PS_UPDATE_AM_NO);
lds R18,_station_no
ldi R16,<_gps+3
ldi R17,>_gps+3
xcall _EEPROMwrite
.dbline 336
; EEPROM_READ((int)&gps.ps_am_station[station_no],freq);
ldi R24,2
ldi R25,0
std y+0,R24
std y+1,R25
ldi R18,<_freq
ldi R19,>_freq
ldi R24,<_gps+68
ldi R25,>_gps+68
lds R16,_station_no
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
xcall _EEPROMReadBytes
.dbline 337
; }
xjmp L130
L129:
.dbline 339
; else
; {
.dbline 340
; if( station_no == 0 )
lds R2,_station_no
tst R2
brne L135
.dbline 341
; station_no = MAX_FM_STATION-1;
ldi R24,29
sts _station_no,R24
xjmp L136
L135:
.dbline 343
; else
; station_no--;
lds R24,_station_no
subi R24,1
sts _station_no,R24
L136:
.dbline 344
; EEPROMwrite((int)&(gps.ps_fm_no),station_no);
lds R18,_station_no
ldi R16,<_gps+2
ldi R17,>_gps+2
xcall _EEPROMwrite
.dbline 345
; EEPROM_READ((int)&gps.ps_fm_station[station_no],freq);
ldi R24,2
ldi R25,0
std y+0,R24
std y+1,R25
ldi R18,<_freq
ldi R19,>_freq
ldi R24,<_gps+8
ldi R25,>_gps+8
lds R16,_station_no
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
xcall _EEPROMReadBytes
.dbline 346
L130:
.dbline 346
; };
.dbline 347
; save_fre();
xcall _save_fre
.dbline 348
; init_radio();
xcall _init_radio
.dbline 349
; display_type = DIS_FREQUENCY;
clr R2
sts _display_type,R2
.dbline 350
; break;
xjmp L26
L139:
.dbline 354
;
; case RD_SKIPF:
; //if(is_search_all_station||is_autosearching) brea
; is_autosearching = 0;
clr R2
sts _is_autosearching,R2
.dbline 355
; g_ui_tmp_msg_cnt = 10;
ldi R24,10
sts _g_ui_tmp_msg_cnt,R24
.dbline 356
; if(amfm_flag)
lds R2,_amfm_flag
tst R2
breq L140
.dbline 357
; {
.dbline 358
; station_no=(station_no+1)%MAX_AM_STATION;
ldi R17,20
lds R16,_station_no
subi R16,255 ; addi 1
xcall mod8u
sts _station_no,R16
.dbline 359
; EEPROMwrite((int)&(gps.ps_am_no),station_no);
mov R18,R16
ldi R16,<_gps+3
ldi R17,>_gps+3
xcall _EEPROMwrite
.dbline 360
; EEPROM_READ((int)&gps.ps_am_station[station_no],freq);
ldi R24,2
ldi R25,0
std y+0,R24
std y+1,R25
ldi R18,<_freq
ldi R19,>_freq
ldi R24,<_gps+68
ldi R25,>_gps+68
lds R16,_station_no
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
xcall _EEPROMReadBytes
.dbline 361
; }
xjmp L141
L140:
.dbline 363
; else
; {
.dbline 364
; station_no=(station_no+1)%MAX_FM_STATION;
ldi R17,30
lds R16,_station_no
subi R16,255 ; addi 1
xcall mod8u
sts _station_no,R16
.dbline 365
; EEPROMwrite((int)&(gps.ps_fm_no),station_no);
mov R18,R16
ldi R16,<_gps+2
ldi R17,>_gps+2
xcall _EEPROMwrite
.dbline 366
; EEPROM_READ((int)&gps.ps_fm_station[station_no],freq);
ldi R24,2
ldi R25,0
std y+0,R24
std y+1,R25
ldi R18,<_freq
ldi R19,>_freq
ldi R24,<_gps+8
ldi R25,>_gps+8
lds R16,_station_no
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
xcall _EEPROMReadBytes
.dbline 367
; }
L141:
.dbline 368
; save_fre();
xcall _save_fre
.dbline 369
; init_radio();
xcall _init_radio
.dbline 370
; display_type = DIS_FREQUENCY;
clr R2
sts _display_type,R2
.dbline 371
; break;
xjmp L26
L146:
.dbline 374
;
; case RD_STORE:
; if(is_autosearching) break;
lds R2,_is_autosearching
tst R2
breq L147
.dbline 374
xjmp L26
L147:
.dbline 375
; if(display_type != RADIO_STORE)
lds R24,_display_type
cpi R24,14
breq L149
.dbline 376
; {
.dbline 378
; // flashtime = 0;
; display_type = RADIO_STORE;
ldi R24,14
sts _display_type,R24
.dbline 379
; radio_count = station_no+2;
lds R24,_station_no
clr R25
adiw R24,2
sts _radio_count+1,R25
sts _radio_count,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -