好文档 - 专业文书写作范文服务资料分享网站

DSP第二次实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

五、实验心得

通过此次实验我掌握利用DSP产生正弦信号的原理,熟悉子程序调用的程序结构以及堆栈的使用,掌握CCS的图形输出操作,本次实验内容有阅读和理解Sin.s54;调试正弦波发生器;加入断点,并选取图形观测,利用动画及时更新;对比前两次实验,难度有所增加,但是在老师和助教的精心指导下,顺利完成实验,几次实验之后,我认识到实验之前预习的必要性,所以以后的实验中,我会争取做到每一次实验都提前预习。

附录:实验程序

;****************************************************************************** ; SJTU DSP Tech. Center

; Copyright (c) 2003 SJTU DSP Tech. Center. All Rights Reserved. ;

; Description:

; TMS320C54x Program for Students Experiment ;

; History:

; Date Authors Changes ; 2003/08/01 Fu Xuan Created.

;******************************************************************************

STACK_ADDR .set 0x0500

STEP .set 0x0900 ;delta x (must be positive), the more the higher frequency

;T=65536/STEP, f=1/T

.bss sin_out, 1

.mmregs

.global main

.text

main:

stm #STACK_ADDR, SP

stm #0x00A8, PMST ;IPTR=0x0080

stm #0x0000, SWWSR ;software wait status register

sub A

ssbx CPL ;direct address using SP ssbx FRCT ;fraction mode ssbx OVM ;overflow mode ssbx SXM ;sign extension

stm #sin_out, AR6

sin_loop:

pshm AG ;save current x ;ddian OK pshm AH ;ddian OK pshm AL ;ddian OK

call calculate_sin ;-pi <= x <= pi ;ddian OK

sth A, *AR6 ;store sin(x), add probe point ;ddian OK

popm AL ;ddian OK popm AH ;ddian OK popm AG ;ddian OK

add #STEP, A ;add delta ;ddian OK

sub #0x7fff, A, B ;test if x>pi, B=A-pi ;ddian OK bc normal_increase, BLT;ddian OK ld #0x8000, A ;A=-pi

add B, A ;A=B+(-pi)=x - 2*pi normal_increase:

b sin_loop ;ddian OK dead_loop: nop nop nop nop

b dead_loop

;****************************************************************************** sign .set 0 ;local variable

calculate_sin:

frame -1 ;allocate sign

nop ;no direct addressing next frame

st #0, @sign ;decide sign, 0 for 1st and 2nd quadrant, 1 for 3rd and 4th quadrant xc 2, ALT st #1, @sign

abs A ;change to 1st and 2nd quadrant sub #0x4000, A, B ;test for 1st quadrant

bc first_quadrant, BLEQ;if not change to 1st quadrant sub #0x7fff, A ;As sin(pi-x)=sinx, let x=pi-x neg A

first_quadrant:

stm #coef, AR2

stlm A, T ;T=x ld *AR2+, 16, A ;AH=C5 ld *AR2+, 16, B ;BH=C4

rpt #5-1 ;AH=C5*x^5+C4*x^4+C3*x^3+C2*x^2+C1*x+0 poly *AR2+

ld @sign, B ;pick out sign sfta A, 3 ;make Q15 format

nop ;nop for B condition test by xc xc 1, BNEQ ;test sign neg A ;sin(-x)=-sinx

frame 1 ret

;****************************************************************************** .sect \

int_RESET:

b main nop nop

.space 124*16

;sin(x)=0 + 3.140625x + 0.02026367x^2 - 5.325196x^3 + 0.5446778x^4 + 1.800293x^5 .data

coef: ;As the max value is -5.325196, so Q12 is used .word 0x1cce ;1.800293 * 4096 .word 0x08b7 ;0.5446778 * 4096 .word 0xaacc ;-5.325196 * 4096 .word 0x0053 ;0.02026367 * 4096 .word 0x3240 ;3.140625 * 4096 .word 0x0000 ;0 .end

;end of Sin.s54

DSP第二次实验报告

五、实验心得通过此次实验我掌握利用DSP产生正弦信号的原理,熟悉子程序调用的程序结构以及堆栈的使用,掌握CCS的图形输出操作,本次实验内容有阅读和理解Sin.s54;调试正弦波发生器;加入断点,并选取图形观测,利用动画及时更新;对比前两次实验,难度有所增加,但是在老师和助教的精心指导下,顺利
推荐度:
点击下载文档文档为doc格式
1le6b2b3df1emx12t1jh
领取福利

微信扫码领取福利

微信扫码分享