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

📄 soc_test.s

📁 atmega128串口通信
💻 S
📖 第 1 页 / 共 4 页
字号:
L79:
	.dbline 400
;  case 0x03://旁路CIC
;     ddc_param= ddc_param|0b0000000000000010;
	lds R24,_ddc_param
	lds R25,_ddc_param+1
	ori R24,2
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 401
;    break;
	xjmp L73
L80:
	.dbline 403
;  case 0x04://接入HB
;     ddc_param= ddc_param&0b1111111111111011;
	lds R24,_ddc_param
	lds R25,_ddc_param+1
	andi R24,251
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 404
;    break;
	xjmp L73
L81:
	.dbline 406
;  case 0x05://旁路HB
;     ddc_param=  ddc_param|0b0000000000000100;
	lds R24,_ddc_param
	lds R25,_ddc_param+1
	ori R24,4
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 407
;    break;
	xjmp L73
L82:
	.dbline 409
;  case 0x06://接入FIR
;     ddc_param= ddc_param&0b1111111111110111;
	lds R24,_ddc_param
	lds R25,_ddc_param+1
	andi R24,247
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 410
;    break;
	xjmp L73
L83:
	.dbline 412
;  case 0x07://旁路FIR
;     ddc_param= ddc_param|0b0000000000001000;
	lds R24,_ddc_param
	lds R25,_ddc_param+1
	ori R24,8
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 413
;    break;
	xjmp L73
L84:
	.dbline 415
;  case 0x08:
;    ddc_param=DDC_PARAM;
	ldi R24,142
	ldi R25,0
	sts _ddc_param+1,R25
	sts _ddc_param,R24
	.dbline 416
;    break; 
	.dbline 417
;  default:break;
L73:
	.dbline 419
; }
;  send_instruct(ddc_param,0x00);
	clr R18
	lds R16,_ddc_param
	lds R17,_ddc_param+1
	xcall _send_instruct
	.dbline 420
; systemregH=systemregH&0b11111011;
	lds R24,_systemregH
	andi R24,251
	sts _systemregH,R24
	.dbline 421
; SYSCTL_BYTE_HIG=systemregH;
	mov R2,R24
	sts 6655,R2
	.dbline 422
; NOP5();
	xcall _NOP5
	.dbline 423
; NOP5();
	xcall _NOP5
	.dbline 424
; NOP5();
	xcall _NOP5
	.dbline 425
; NOP5();
	xcall _NOP5
	.dbline 426
; NOP5();
	xcall _NOP5
	.dbline 427
; NOP5();
	xcall _NOP5
	.dbline 428
; NOP5();
	xcall _NOP5
	.dbline 429
; systemregH=systemregH|0b00000100;
	lds R24,_systemregH
	ori R24,4
	sts _systemregH,R24
	.dbline 430
; SYSCTL_BYTE_HIG=systemregH;
	mov R2,R24
	sts 6655,R2
	.dbline 431
; NOP5();
	xcall _NOP5
	.dbline 432
; NOP5();
	xcall _NOP5
	.dbline 433
; NOP5();
	xcall _NOP5
	.dbline 434
; NOP5();
	xcall _NOP5
	.dbline 435
; NOP5();
	xcall _NOP5
	.dbline 436
; NOP5();
	xcall _NOP5
	.dbline 437
; NOP5();
	xcall _NOP5
	.dbline 438
; systemregH=systemregH&0b11111011;
	lds R24,_systemregH
	andi R24,251
	sts _systemregH,R24
	.dbline 439
; SYSCTL_BYTE_HIG=systemregH;
	mov R2,R24
	sts 6655,R2
	.dbline -2
	.dbline 440
; }//end DDC_param_set
L71:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e NCO_freq_set _NCO_freq_set fV
;           temp -> R10,R11
;       nco_freq -> y+6
	.even
_NCO_freq_set::
	xcall push_arg4
	xcall push_gset3
	.dbline -1
	.dbline 446
; 
; /*********************************************************
; NCO频率设置
; *********************************************************/
; void NCO_freq_set(long nco_freq)
; {short temp;
	.dbline 447
;  temp = (short)(nco_freq>>16);
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	movw R10,R4
	.dbline 448
;  send_instruct(temp,0x02);
	ldi R18,2
	movw R16,R10
	xcall _send_instruct
	.dbline 449
;  temp = nco_freq%65536;
	ldi R20,0
	ldi R21,0
	ldi R22,1
	ldi R23,0
	movw R30,R28
	ldd R2,z+6
	ldd R3,z+7
	ldd R4,z+8
	ldd R5,z+9
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	movw R16,R2
	movw R18,R4
	xcall mod32s
	movw R10,R16
	.dbline 450
;  send_instruct(temp,0x01);
	ldi R18,1
	xcall _send_instruct
	.dbline -2
	.dbline 451
; }// end NCO_freq_set
L85:
	xcall pop_gset3
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r temp 10 S
	.dbsym l nco_freq 6 L
	.dbend
	.dbfunc e NCO_phase_set _NCO_phase_set fV
;      nco_phase -> R20,R21
	.even
_NCO_phase_set::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 457
; 
; /*********************************************************
; NCO相位设置
; *********************************************************/
; void NCO_phase_set(short nco_phase)
; {
	.dbline 458
;  send_instruct(nco_phase,0x03);
	ldi R18,3
	movw R16,R20
	xcall _send_instruct
	.dbline -2
	.dbline 459
; }// end NCO_phase_set
L86:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r nco_phase 20 S
	.dbend
	.dbfunc e CIC_param_set _CIC_param_set fV
	.even
_CIC_param_set::
	.dbline -1
	.dbline 465
; 
; /*********************************************************
; CIC参数设置
; *********************************************************/
; void CIC_param_set(void)
; {send_instruct(CIC_PARAM,0x04);
	.dbline 465
	ldi R18,4
	ldi R16,29722
	ldi R17,116
	.dbline -2
	.dbline 467
;  
; }//end CIC_param_set
L87:
	.dbline 0 ; func end
	xjmp _send_instruct
	.dbend
	.dbfunc e HB_param_set _HB_param_set fV
;              i -> R20,R21
	.even
_HB_param_set::
	xcall push_gset1
	.dbline -1
	.dbline 473
; 
; /*********************************************************
; HB参数设置
; *********************************************************/
; void HB_param_set(void)
; {int i;
	.dbline 474
;  send_instruct(HB_PARAM,0x1e);
	ldi R18,30
	ldi R16,16
	ldi R17,0
	xcall _send_instruct
	.dbline 475
;  for(i=0;i<17;i++)
	clr R20
	clr R21
L89:
	.dbline 476
	mov R18,R20
	subi R18,225  ; offset = 31
	sbci R19,255
	ldi R24,<_buffer+4
	ldi R25,>_buffer+4
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	clr R3
	ldi R16,256
	ldi R17,1
	push R18
	push R19
	movw R18,R2
	xcall empy16s
	pop R19
	pop R18
	xcall _send_instruct
L90:
	.dbline 475
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 475
	cpi R20,17
	ldi R30,0
	cpc R21,R30
	brlt L89
	.dbline -2
	.dbline 478
;   send_instruct((buffer[4+i]*256),i+0x1F);
;  
; }//end HB_param_set
L88:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbend
	.dbfunc e FIR_param_set _FIR_param_set fV
;              i -> R20,R21
	.even
_FIR_param_set::
	xcall push_gset1
	.dbline -1
	.dbline 484
; 
; /*********************************************************
; FIR参数设置
; *********************************************************/
; void FIR_param_set(void)
; {int i;
	.dbline 485
;  send_instruct(FIR_PARAM,0x3f);
	ldi R18,63
	ldi R16,356
	ldi R17,1
	xcall _send_instruct
	.dbline 486
;  for(i=0;i<32;i++)
	clr R20
	clr R21
L95:
	.dbline 487
	mov R18,R20
	subi R18,192  ; offset = 64
	sbci R19,255
	ldi R24,<_buffer+4
	ldi R25,>_buffer+4
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	clr R3
	ldi R16,256
	ldi R17,1
	push R18
	push R19
	movw R18,R2
	xcall empy16s
	pop R19
	pop R18
	xcall _send_instruct
L96:
	.dbline 486
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 486
	cpi R20,32
	ldi R30,0
	cpc R21,R30
	brlt L95
	.dbline -2
	.dbline 489
;   send_instruct((buffer[4+i]*256),i+0x40);
;  
; }//end FIR_param_set
L94:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbend
	.dbfunc e DDS_param_set _DDS_param_set fV
;          temp2 -> R10,R11
;          temp1 -> y+0
	.even
_DDS_param_set::
	xcall push_gset3
	sbiw R28,4
	.dbline -1
	.dbline 495
; 
; /*********************************************************
; DDS参数设置
; *********************************************************/
; void DDS_param_set(void)
; {long temp1;
	.dbline 497
;  short temp2;
; systemregH=systemregH&0b11110111;
	lds R24,_systemregH
	andi R24,247
	sts _systemregH,R24
	.dbline 498
; SYSCTL_BYTE_HIG=systemregH;
	mov R2,R24
	sts 6655,R2
	.dbline 499
; temp1=(long)buffer[4]*256*256*256;
	lds R2,_buffer+4
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 500
; temp1=temp1+(long)buffer[5]*256*256;
	lds R2,_buffer+5
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R16
	adc R3,R17
	adc R4,R18
	adc R5,R19
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 501
; temp1=temp1+(long)buffer[6]*256;
	lds R2,_buffer+6
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R16
	adc R3,R17
	adc R4,R18
	adc R5,R19
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 502
; temp1=temp1+(long)buffer[7];
	lds R2,_buffer+7
	clr R3
	clr R4
	clr R5
	movw R30,R28
	ldd R6,z+0
	ldd R7,z+1
	ldd R8,z+2
	ldd R9,z+3
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+0,R6
	std z+1,R7
	std z+2,R8
	std z+3,R9
	.dbline 503
; set_dds_freq(temp1);
	movw R30,R28
	ldd R16,z+0
	ldd R17,z+1
	ldd R18,z+2
	ldd R19,z+3
	xcall _set_dds_freq
	.dbline 504
; temp2=buffer[8]*256+buffer[9];
	lds R18,_buffer+8
	clr R19
	ldi R16,256
	ldi R17,1
	xcall empy16s
	movw R10,R16
	lds R2,_buffer+9
	clr R3
	add R10,R2
	adc R11,R3
	.dbline 505
; set_dds_scale(0x07ff);
	ldi R16,2047
	ldi R17,7
	xcall _set_dds_scale
	.dbline 506
; temp2=buffer[10]*256+buffer[11];
	lds R18,_buffer+10
	clr R19
	ldi R16,256
	ldi R17,1
	xcall empy16s
	movw R10,R16
	lds R2,_buffer+11
	clr R3
	add R10,R2
	adc R11,R3
	.dbline 507
; set_dds_phase(temp2);
	movw R16,R10
	xcall _set_dds_phase
	.dbline 508
; temp1=(long)buffer[12]*256*256*256;
	lds R2,_buffer+12
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 509
; temp1=temp1+(long)buffer[13]*256*256;
	lds R2,_buffer+13
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R19
	st -y,R18
	st -y,R17
	st -y,R16
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R16
	adc R3,R17
	adc R4,R18
	adc R5,R19
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 510
; temp1=temp1+(long)buffer[14]*256;
	lds R2,_buffer+14
	clr R3
	clr R4
	clr R5
	ldi R20,0
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32s
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R16
	adc R3,R17
	adc R4,R18
	adc R5,R19
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 511
; temp1=temp1+(long)buffer[15];
	lds R2,_buffer+15
	clr R3
	clr R4
	clr R5
	movw R30,R28
	ldd R6,z+0
	ldd R7,z+1
	ldd R8,z+2
	ldd R9,z+3
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+0,R6
	std z+1,R7
	std z+2,R8
	std z+3,R9

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -