STM32
直播中

郝埃连

7年用户 1353经验值
私信 关注
[问答]

怎样去编写一种基于DSP的正弦波信号发生器源程序呢

怎样去编写一种基于DSP的正弦波信号发生器源程序呢?

回帖(1)

李海龙

2021-11-19 14:23:25
  基于DSP的正弦波信号发生器源程序(汇编语言)
  正弦波信号发生器源程序
  D.1用泰勒级数开展开法计算一个角度的余弦值
  ******************************************************
  * 用泰勒级数开展开法计算一个角度的余弦值 *
  * cos(x)=1-x*x/2(1-x*x/3*4(1-x*x/5*6(x*x/7*8))) *
  ******************************************************
  .title“cosx.asm”
  .mmregs
  .defstart
  STACK:.usect“STACK”,10
  Start:STM#STACK+10,SP
  LD#d_x,DP
  ST#6487H,d_x;x--》d_x
  CALLcos_start
  end:Bend
  cos_start:
  .defcos_start
  d_coeff.usect“coeff”,4
  .data
  table:.word0249H;c1=1/(7*8)
  .word0444H;c2=1/(5*6)
  .word0AABH;c3=1/(3*4)
  .word4000H;c4=1/(1*2)
  d_x.usect“cos_vars”,1
  d_squr_x .usect“cos_vars”,1
  d_temp.usect“cos_vars”,1
  d_cosx.usect“cos_vars”,1
  c_1.usect“cos_vars”,1
  .text
  SSBXFRCT
  STM#d_coeff,AR5
  RPT#3
  MVPD#table,*AR5+
  STM#d_coeff,AR3
  STM#d_x,AR2
  STM#c_1,AR4
  ST#7FFFH,c_1
  SQUR*AR2+,A;A=x^2
  STA,*AR2;(AR2)=x^2
  ||LD*AR4,B;B=1
  MASR*AR2+,*AR3+,B,A;A=1-x^2/56,T=x^2
  MPYAA;A=T*A=x^2(1-x^2/56)
  STHA,*AR2;(d_temp)=x^2(1-x^2/56)
  MASR*AR2-,*AR3+,B,A;A=1-x^2/30(1-x^2/56),T=x^2(1-x^2/56)
  MPYA*AR2+;B=x^2(1-x^2/30(1-x^2/56))
  STB,*AR2;(d_temp)=x^2(1-x^2/30(1-x^2/56))
  ||LD*AR4,B;B=1
  MASR*AR2-,*AR3+,B,A;A=1-x^2(1-x^2/30(1-x^2/56))
  SFTAA,-1,A;A右移一位即A除以2
  NEGA
  MPYA*AR2+;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
  MAR*AR2+
  RETD
  ADD*AR4,16,B;B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
  STHB,*AR2;cos(theta)
  RET
  .end
  ******************************************************
  *中断向量文件vectors.asm
  ******************************************************
  .title “vectors.asm”
  .refstart
  .sect “.vectors”
  Bstart
  .end
  ******************************************************
  *链接命令文件
  ******************************************************
  vectors.obj
  cosx.obj
  -Ocosx.out
  -mcosx.map
  -estart
  MEMORY
  {
  PAGE 0:
  EPROM:org=0090H,len=0F70H
  VECS:org=0080H,len=0010H
  PAGE 1:
  SPRAM:org=1000H,len=1000H
  DARAM:org=2000H,len=2000H
  }
  SECTIONS
  {
  .
举报

更多回帖

发帖
×
20
完善资料,
赚取积分