| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
菜鳥(niǎo)求助C5402正弦波發(fā)生器 | 
  
| 作者:dengjinmin 欄目:DSP技術(shù) | 
由于現(xiàn)在正在DSP學(xué)習(xí)初級(jí)階段,所以有好多問(wèn)題不懂,希望哪位達(dá)人可以幫忙解答,先在這里謝謝了。 小弟有個(gè)問(wèn)題比較疑惑,對(duì)于正弦波發(fā)生程序,如果要移相改怎么修改?例如把sin2x的程序改為sin(2x+40), 我在原來(lái)sin2x的程序上(匯編)把初始的0值改為20度對(duì)應(yīng)的弧度但是后面在利用倍角計(jì)算的時(shí)候出來(lái)的圖形不對(duì),COPY的地方好似有點(diǎn)不對(duì),希望高手可以解答,附程序: .title "sin.asm" .mmregs .def start ;.ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosx sin_x: .usect "sin_x",360 STACK: .usect "STACK",10H k_theta .set 286 PA0 .set 0 start: .text STM #STACK+10H,SP STM k_theta,AR0 STM 5719,AR1 STM #sin_x,AR6 STM #90,BRC RPTB loop1-1 LDM AR1,A LD #d_xs,DP STL A,@d_xs STL A,@d_xc CALL sinx CALL cosx LD #d_sinx,DP LD @d_sinx,16,A MPYA @d_cosx STH B,1,*AR6+ MAR *AR1+0 loop1: STM #sin_x+89,AR7 STM #88,BRC RPTB loop2-1 LD *AR7-,A STL A,*AR6+ loop2: STM #179,BRC STM #sin_x,AR7 RPTB loop3-1 LD *AR7+,A NEG A STL A,*AR6+ loop3: STM #sin_x,AR6 STM #1,AR0 STM #360,BK loop4: PORTW *AR6+0%,PA0 B loop4 sinx: .def d_xs,d_sinx .data table_s: .word 01c7H .word 030bH .word 0666H .word 1556H d_coef_s .usect "coef_s",4 d_xs .usect "sin_vars",1 d_squr_xs .usect "sin_vars",1 d_temp_s .usect "sin_vars",1 d_sinx .usect "sin_vars",1 d_1_s .usect "sin_vars",1 .text SSBX FRCT STM #d_coef_s,AR5 RPT #3 MVPD #table_s,*AR5+ STM #d_coef_s,AR3 STM #d_xs,AR2 STM #d_1_s,AR4 ST #7FFFH,d_1_s SQUR *AR2+,A ST A,*AR2 || LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 || LD *AR4,B MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 || LD *AR4,B MASR *AR2-,*AR3+,B,A MPYA d_xs STH B,d_sinx RET cosx: .def d_xc,d_cosx d_coef_c .usect "coef_c",4 .data table_c: .word 0249H .word 0444H .word 0AABH .word 4000H d_xc .usect "cos_vars",1 d_squr_xc .usect "cos_vars",1 d_temp_c .usect "cos_vars",1 d_cosx .usect "cos_vars",1 c_1_c .usect "cos_vars",1 .text SSBX FRCT STM #d_coef_c,AR5 RPT #3 MVPD #table_c,*AR5+ STM #d_coef_c,AR3 STM #d_xc,AR2 STM #c_1_c,AR4 ST #7FFFH,c_1_c SQUR *AR2+,A ST A,*AR2 &n  | 
  
| 2樓: | >>參與討論 | 
| 作者: gudeng614 于 2006/12/24 14:19:00 發(fā)布:
         一般是用查找表做的吧  | 
  |
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 | 
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào)  |