📄 ji.asm
字号:
.DEFINE P_INT_Ctrl 0x7010;
.DEFINE P_INT_Clear 0x7011;
.DEFINE P_ADC_MUX_Ctrl 0x702B;
.DEFINE P_ADC_MUX_Data 0x702C;
.DEFINE P_SYSTEMCLOCK 0x7013;
.DEFINE P_TimerA_Data 0x700A;
.DEFINE P_TimerA_Ctrl 0x700B;
.DEFINE P_ADC_Ctrl 0x7015;
.DEFINE P_DAC_Ctrl 0x702A;
.DEFINE P_DAC2 0x7016;
.DEFINE P_DAC1 0x7017;
.DEFINE P_Watchdog_Clear 0x7012;
.isram
x0: .dw 1;
x1: .dw 1;
x2: .dw 1;
x3: .dw 1;
x4: .dw 1;
x5: .dw 1;
x6: .dw 1;
x7: .dw 1;
x8: .dw 1;
x9: .dw 1;
x10: .dw 1;
x11: .dw 1;
x12: .dw 1;
x13: .dw 1;
x14: .dw 1;
x15: .dw 1;
.DATA
h0: .dw 1;
h1: .dw 3;
h2: .dw 5;
h3: .dw 7;
h4: .dw 9;
h5: .dw 11;
h6: .dw 12;
h7: .dw 12;
h8: .dw 12;
h9: .dw 12;
h10: .dw 11;
h11: .dw 9;
h12: .dw 7;
h13: .dw 5;
h14: .dw 3;
h15: .dw 1;
.code
.public _main
_main:
int off; //关断AHK进l
r1 = 0x00f0; //Fosc=49.152MHz,CPUCLOCK=Fosc
[P_SYSTEMCLOCK] = r1;
r1 = 0x0030; //clckA选择Fosc/2;ClockB
[P_TimerA_Ctrl] = r1;
r1 = 0xfd00;
[P_TimerA_Data] = r1; //32kHz断频
r1 = 0;
[P_DAC_Ctrl] = r1; //将DAR锁sDACF
r1 = 0x1;
[P_ADC_Ctrl] = r1; //yunxu数模转换
r1 = 0x1;
[P_ADC_MUX_Ctrl] = r1; //选择Line_IN1输J
r1 = 0x2000;
[P_INT_Ctrl] = r1; //许timeAFIQ断
fiq on; //开断
loop:
nop;
r1 = 0x0001;
[P_Watchdog_Clear ] = r1; //清看门狗
goto loop;
.text
.public _FIQ
_FIQ:
fir_mov on
r1=x0; //*
r3=[P_ADC_MUX_Data]; //get ad data*
r3=r3 lsr 4; //AD is plus
r3=r3 lsr 2;
[r1]=r3;
mr = [r1]*[r2],us,16 //FIR滤i运
r4 = r4 lsr 4;
r3 = r3 ror 4;
r4 = r4 lsr 4;
r3 = r3 ror 3; //计结G16
r3=r3 lsl 2
r3=r3 lsl 4
[P_DAC1] = r3; //DA转换
r1 = 0x2000;
[P_INT_Clear] =r1;
r1 = x0;
r2 = h0;
reti;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -