📄 soc_test.lis
字号:
039C 5F70 andi R21,15
039E .dbline 362
039E ; temp=temp|0x0000;
039E .dbline 363
039E ; send_instruct(temp,0x80);
039E 20E8 ldi R18,128
03A0 8A01 movw R16,R20
03A2 85DF xcall _send_instruct
03A4 .dbline -2
03A4 .dbline 364
03A4 ; }//set_dds_scale
03A4 L68:
03A4 0E940000 xcall pop_gset2
03A8 .dbline 0 ; func end
03A8 0895 ret
03AA .dbsym r temp 20 S
03AA .dbsym r dds_amp 22 S
03AA .dbend
03AA .dbfunc e set_dds_phase _set_dds_phase fV
03AA ; dds_phase -> R20,R21
.even
03AA _set_dds_phase::
03AA 0E940000 xcall push_gset1
03AE A801 movw R20,R16
03B0 .dbline -1
03B0 .dbline 370
03B0 ;
03B0 ; /*********************************************************
03B0 ; 设置DDS相位
03B0 ; *********************************************************/
03B0 ; void set_dds_phase(short dds_phase)
03B0 ; { send_instruct(dds_phase,0x81);
03B0 .dbline 370
03B0 21E8 ldi R18,129
03B2 8A01 movw R16,R20
03B4 7CDF xcall _send_instruct
03B6 .dbline -2
03B6 .dbline 371
03B6 ; }//set_dds_phase
03B6 L69:
03B6 0E940000 xcall pop_gset1
03BA .dbline 0 ; func end
03BA 0895 ret
03BC .dbsym r dds_phase 20 S
03BC .dbend
03BC .dbfunc e set_dds_increment _set_dds_increment fV
03BC ; temp -> R10,R11
03BC ; dds_freqdelta -> y+6
.even
03BC _set_dds_increment::
03BC 0E940000 xcall push_arg4
03C0 0E940000 xcall push_gset3
03C4 .dbline -1
03C4 .dbline 377
03C4 ;
03C4 ; /*********************************************************
03C4 ; 设置DDS频率步进
03C4 ; *********************************************************/
03C4 ; void set_dds_increment(long dds_freqdelta)
03C4 ; { short temp;
03C4 .dbline 378
03C4 ; temp = (short)(dds_freqdelta>>16);
03C4 FE01 movw R30,R28
03C6 2680 ldd R2,z+6
03C8 3780 ldd R3,z+7
03CA 4084 ldd R4,z+8
03CC 5184 ldd R5,z+9
03CE 5201 movw R10,R4
03D0 .dbline 379
03D0 ; send_instruct(temp,0x85);
03D0 25E8 ldi R18,133
03D2 8501 movw R16,R10
03D4 6CDF xcall _send_instruct
03D6 .dbline 380
03D6 ; temp = dds_freqdelta%65536;
03D6 40E0 ldi R20,0
03D8 50E0 ldi R21,0
03DA 61E0 ldi R22,1
03DC 70E0 ldi R23,0
03DE FE01 movw R30,R28
03E0 2680 ldd R2,z+6
03E2 3780 ldd R3,z+7
03E4 4084 ldd R4,z+8
03E6 5184 ldd R5,z+9
03E8 7A93 st -y,R23
03EA 6A93 st -y,R22
03EC 5A93 st -y,R21
03EE 4A93 st -y,R20
03F0 8101 movw R16,R2
03F2 9201 movw R18,R4
03F4 0E940000 xcall mod32s
03F8 5801 movw R10,R16
03FA .dbline 381
03FA ; send_instruct(temp,0x84);
03FA 24E8 ldi R18,132
03FC 58DF xcall _send_instruct
03FE .dbline -2
03FE .dbline 382
03FE ; }//set_dds_increment
03FE L70:
03FE 0E940000 xcall pop_gset3
0402 2496 adiw R28,4
0404 .dbline 0 ; func end
0404 0895 ret
0406 .dbsym r temp 10 S
0406 .dbsym l dds_freqdelta 6 L
0406 .dbend
0406 .dbfunc e DDC_param_set _DDC_param_set fV
.even
0406 _DDC_param_set::
0406 0E940000 xcall push_gset1
040A .dbline -1
040A .dbline 388
040A ;
040A ; /*********************************************************
040A ; DDC旁路设置
040A ; *********************************************************/
040A ; void DDC_param_set(void)
040A ; {
040A .dbline 389
040A ; switch(buffer[4])
040A 40912300 lds R20,_buffer+4
040E 5527 clr R21
0410 4030 cpi R20,0
0412 4507 cpc R20,R21
0414 41F1 breq L76
0416 X3:
0416 4130 cpi R20,1
0418 E0E0 ldi R30,0
041A 5E07 cpc R21,R30
041C 71F1 breq L77
041E 4230 cpi R20,2
0420 E0E0 ldi R30,0
0422 5E07 cpc R21,R30
0424 09F4 brne X5
0426 33C0 xjmp L78
0428 X5:
0428 4330 cpi R20,3
042A E0E0 ldi R30,0
042C 5E07 cpc R21,R30
042E 09F4 brne X6
0430 38C0 xjmp L79
0432 X6:
0432 4430 cpi R20,4
0434 E0E0 ldi R30,0
0436 5E07 cpc R21,R30
0438 09F4 brne X7
043A 3DC0 xjmp L80
043C X7:
043C 4530 cpi R20,5
043E E0E0 ldi R30,0
0440 5E07 cpc R21,R30
0442 09F4 brne X8
0444 42C0 xjmp L81
0446 X8:
0446 4630 cpi R20,6
0448 E0E0 ldi R30,0
044A 5E07 cpc R21,R30
044C 09F4 brne X9
044E 47C0 xjmp L82
0450 X9:
0450 4730 cpi R20,7
0452 E0E0 ldi R30,0
0454 5E07 cpc R21,R30
0456 09F4 brne X10
0458 4CC0 xjmp L83
045A X10:
045A 4830 cpi R20,8
045C E0E0 ldi R30,0
045E 5E07 cpc R21,R30
0460 09F4 brne X11
0462 51C0 xjmp L84
0464 X11:
0464 56C0 xjmp L73
0466 X4:
0466 .dbline 390
0466 ; {case 0x00://接入NCO
0466 L76:
0466 .dbline 391
0466 ; ddc_param= ddc_param&0b1111111111111110;
0466 80910000 lds R24,_ddc_param
046A 90910100 lds R25,_ddc_param+1
046E 8E7F andi R24,254
0470 90930100 sts _ddc_param+1,R25
0474 80930000 sts _ddc_param,R24
0478 .dbline 392
0478 ; break;
0478 4CC0 xjmp L73
047A L77:
047A .dbline 394
047A ; case 0x01://旁路NCO
047A ; ddc_param= ddc_param|0b0000000000000001;
047A 80910000 lds R24,_ddc_param
047E 90910100 lds R25,_ddc_param+1
0482 8160 ori R24,1
0484 90930100 sts _ddc_param+1,R25
0488 80930000 sts _ddc_param,R24
048C .dbline 395
048C ; break;
048C 42C0 xjmp L73
048E L78:
048E .dbline 397
048E ; case 0x02://接入CIC
048E ; ddc_param= ddc_param&0b1111111111111101;
048E 80910000 lds R24,_ddc_param
0492 90910100 lds R25,_ddc_param+1
0496 8D7F andi R24,253
0498 90930100 sts _ddc_param+1,R25
049C 80930000 sts _ddc_param,R24
04A0 .dbline 398
04A0 ; break;
04A0 38C0 xjmp L73
04A2 L79:
04A2 .dbline 400
04A2 ; case 0x03://旁路CIC
04A2 ; ddc_param= ddc_param|0b0000000000000010;
04A2 80910000 lds R24,_ddc_param
04A6 90910100 lds R25,_ddc_param+1
04AA 8260 ori R24,2
04AC 90930100 sts _ddc_param+1,R25
04B0 80930000 sts _ddc_param,R24
04B4 .dbline 401
04B4 ; break;
04B4 2EC0 xjmp L73
04B6 L80:
04B6 .dbline 403
04B6 ; case 0x04://接入HB
04B6 ; ddc_param= ddc_param&0b1111111111111011;
04B6 80910000 lds R24,_ddc_param
04BA 90910100 lds R25,_ddc_param+1
04BE 8B7F andi R24,251
04C0 90930100 sts _ddc_param+1,R25
04C4 80930000 sts _ddc_param,R24
04C8 .dbline 404
04C8 ; break;
04C8 24C0 xjmp L73
04CA L81:
04CA .dbline 406
04CA ; case 0x05://旁路HB
04CA ; ddc_param= ddc_param|0b0000000000000100;
04CA 80910000 lds R24,_ddc_param
04CE 90910100 lds R25,_ddc_param+1
04D2 8460 ori R24,4
04D4 90930100 sts _ddc_param+1,R25
04D8 80930000 sts _ddc_param,R24
04DC .dbline 407
04DC ; break;
04DC 1AC0 xjmp L73
04DE L82:
04DE .dbline 409
04DE ; case 0x06://接入FIR
04DE ; ddc_param= ddc_param&0b1111111111110111;
04DE 80910000 lds R24,_ddc_param
04E2 90910100 lds R25,_ddc_param+1
04E6 877F andi R24,247
04E8 90930100 sts _ddc_param+1,R25
04EC 80930000 sts _ddc_param,R24
04F0 .dbline 410
04F0 ; break;
04F0 10C0 xjmp L73
04F2 L83:
04F2 .dbline 412
04F2 ; case 0x07://旁路FIR
04F2 ; ddc_param= ddc_param|0b0000000000001000;
04F2 80910000 lds R24,_ddc_param
04F6 90910100 lds R25,_ddc_param+1
04FA 8860 ori R24,8
04FC 90930100 sts _ddc_param+1,R25
0500 80930000 sts _ddc_param,R24
0504 .dbline 413
0504 ; break;
0504 06C0 xjmp L73
0506 L84:
0506 .dbline 415
0506 ; case 0x08:
0506 ; ddc_param=DDC_PARAM;
0506 8EE8 ldi R24,142
0508 90E0 ldi R25,0
050A 90930100 sts _ddc_param+1,R25
050E 80930000 sts _ddc_param,R24
0512 .dbline 416
0512 ; break;
0512 .dbline 417
0512 ; default:break;
0512 L73:
0512 .dbline 419
0512 ; }
0512 ; send_instruct(ddc_param,0x00);
0512 2227 clr R18
0514 00910000 lds R16,_ddc_param
0518 10910100 lds R17,_ddc_param+1
051C C8DE xcall _send_instruct
051E .dbline 420
051E ; systemregH=systemregH&0b11111011;
051E 80910200 lds R24,_systemregH
0522 8B7F andi R24,251
0524 80930200 sts _systemregH,R24
0528 .dbline 421
0528 ; SYSCTL_BYTE_HIG=systemregH;
0528 282E mov R2,R24
052A 2092FF19 sts 6655,R2
052E .dbline 422
052E ; NOP5();
052E 68DD xcall _NOP5
0530 .dbline 423
0530 ; NOP5();
0530 67DD xcall _NOP5
0532 .dbline 424
0532 ; NOP5();
0532 66DD xcall _NOP5
0534 .dbline 425
0534 ; NOP5();
0534 65DD xcall _NOP5
0536 .dbline
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -