📄 soc_test.s
字号:
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 + -