⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radio.s

📁 sunplus spca514 cdmp3 源码
💻 S
📖 第 1 页 / 共 3 页
字号:
; 			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 + -