📄 iir3.asm
字号:
.title "IIR3.asm"
.mmregs
.def start
X .usect "X",3
Y .usect "y",3
B .usect "B",3
A .usect "A",3
PA0 .set 0
PA1 .set 1
.data
table: .word 0 ;x(n-2)
.word 0 ;x(n-1)
.word 0 ;y(n-2)
.word 0 ;y(n-1)
.word 1*32768/10 ;B2
.word 2*32768/10 ;B1
.word 3*32768/10 ;B0
.word 5*32768/10 ;A2
.word -4*32768/10 ;A1
.text
start: SSBX FRCT
STM #X,AR1 ;传送初始数据x(n-2),x(n-1)
RPT #1
MVPD #table,*AR1+
STM #Y,AR1 ;传送初始数据y(n-2),y(n-1)
RPT #1
MVPD #table+2,*AR1+
STM #B,AR1 ;传送系数B2,B1,B0
RPT #2
MVPD #table+4,*AR1+
STM #A,AR1 ;传送系数A2,A1
RPT #1
MVPD #table+7,*AR1+
STM #X+2,AR2 ;辅助寄存器指针初始化
STM #A+1,AR3
STM #Y+1,AR4
STM #B+2,AR5
STM #3,BK ;(BK)=3
STM #-1,AR0 ;(AR0)=-1
IIR: PORTR PA1,*AR2 ;输入x(n)
MPY *AR2+0%,*AR5+0%,A ;计算前向通道
MAC *AR2+0%,*AR5+0%,A
MAC *AR2,*AR5+0%,A
MAC *AR4+0%,*AR3+0%,A ;计算反馈通道
MAC *AR4+0%,*AR3+0%,A
MAR *AR3+0%
STH A,*AR4 ;保存y(n)
BD IIR
PORTW *AR4,PA0 ;输出y(n)
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -