您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页DSP开发技术考试卷库

DSP开发技术考试卷库

来源:爱go旅游网
DSP开发技术考试卷库

一、填空类型

1.实时指的是系统必须在有限的时间内对 外部输入信号 完成指定的处理,即信号处理的速度必须大于等于输入信号更新的速度。

2.当存储器没有做好相应CPU访问的准备时,流水线将产生存储器 阻塞 。

3.一个可屏蔽中断服务程序被另一个中断请求(通常是更高级别的)所中断,这一过程称为 中断嵌套 。

4. TMS320C6000所有指令均按取指、 译码 和执行3级流水线运行。

5. 控制状态寄存器包括全局中断使能位、高速缓冲存储器控制位其他各种控制和状态位,它的缩写为 CSR 。

6. 单周期功能单元等待时间的另一术语是 单周期 吞吐量。

7. 对C62XX/C67XX,可使用条件寄存器有: A1、A2、B0、B1、B2 。

8. 代码产生工具构成了CCS集成开发环境的基础部件,它的作用是将C语言、汇编语言或 者 两者的混合语言编写 的DSP源代码程序编译、汇编并链接成可执行的DSP代码。 9. 编译器的优化器选项有四个不同的优化级别,分别对应选项-o0、-o1、-o2和-o3,其中 -o2 是默认的优化级别。

10. CCS能够编译的C程序必须包含一个 c_int00 函数,作为C程序入口点。 1.在理想的情况下,一条k段流水线(每条指令执行k个周期),执行n条指令共 需要 k+n-1 周期。

2. NRP 用于保存从不可屏蔽中断返回时的指针,该指针引导CPU返回到原来程序执行的正确位置。

3.在C6000中,每一个中断源是否被使能受 IER的控制。

4. 控制状态寄存器包括全局中断使能位、高速缓冲存储器控制位其他各种控制和状态位,它的缩写为 CSR 。

5. TMS320C6000系列CPU内有 2 条交叉通路。

6. TMS320C6000所有指令均按取指、 译码 和执行3级流水线运行。

7. 在支持字节寻址的微处理器中,通常有2种数据排列方式,分别是小端终结方式(Little endian)排序和大端终结方式排序。

8. c67xx的2周期双精度指令的延迟间隙为 1 个cpu时钟。

9. AMR的全称是 寻址模式寄存器 ,它指定是否使用线性或循环寻址,如果是循环寻址,还包括循环寻 址的尺寸。

10. CCS对用C代码编写应用程序进行编译、优化、连接后产生的可执行文件以.out为扩展名。

11. 对于GEL文件,需要写一个 Startup 函数,这样在载入GEL文件时会自动执行这个函数。

12. 使用 Init 关键字可以实现向CCS的GEL菜单添加子菜单的功能。

13. 当循环的一次迭代里有多个指令使用同一个资源时,需要使用多周期循环的模编排 技术。

14. 软件流水通过更有效地利用资源来提高代码性能,然而为了建立一个完全流水的编排表,应首先确定最小 迭代间隔 。

1 / 18

DSP开发技术考试卷库

15. 软件流水是编排循环指令、使循环的多次迭代能够 并行 执行的技术。

16.在理想的情况下,一条k段流水线(每条指令执行k个周期),执行n条指令共需要 k+n-1周 期。

17. NRP 用于保存从不可屏蔽中断返回时的指针,该指针引导CPU返回到原来程序执行的正确位置。

18.在C6000中,每一个中断源是否被使能受 IER 的控制。

19. 控制状态寄存器包括全局中断使能位、高速缓冲存储器控制位其他各种控制和状态位,它的缩写为 CSR 。

20. TMS320C6000系列CPU内有 2 条交叉通路。

21. TMS320C6000所有指令均按取指、 译码 和执行3级流水线运行。 22. 在支持字节寻址的微处理器中,通常有2种数据排列方式,分别是小端终结方式(Little endian)排序和 大端终结方式 排序。

23. c67xx的2周期双精度指令的延迟间隙为 1 个cpu时钟。

24. AMR的全称是寻址模式寄存器 ,它指定是否使用线性或循环寻址,如果是循环寻址,还包括循环寻 址的尺寸。

25. CCS对用C代码编写应用程序进行编译、优化、连接后产生的可执行文件以_.out____为扩展名。

26. C6000程序的调试和仿真有两种模式: 软件仿真 和硬件仿真。

27. 表明存储器地址相关与不相关的伪指令是.mdep .no_mdep。

28. 与C6000标准汇编语言相比,采用线性汇编语言进行编程时可以不考虑的因素有:并行指令安排、 和寄存器使用。

29. C优化器所完成的最重要的优化处理是 软件流水 。

30. 所谓的数据打包处理是指:使用字访问短型数据和 。

二、单选类型

1.下面TMS320C6000汇编指令中有效的是( C )

A.LDW .M1 *A1, A2 B.LDW .S1 *A1, A2 C.LDW .D1 *A1, A2 D.LDW .L1 *A1, A2 2.下面TMS320C6000汇编指令中有效的是( A )

A.STH .D2 B4, *B5 B.STH .M 1 A4, *A5 C.STH .L 1 A4, *A5 D.STH .S 1 A4, *A5 3. 下面TMS320C6000汇编指令中有效的是( A )

A.ADDAH .D1 A4, A1,A4 B.ADDAH .D1 A4, B1,A4 C.ADDAH .D1 A4, 100,A4 D.ADDAH .D1 *A4, *A1,A4

4. 能够实现功能“A1的高16位加上A2的高16位,结果送A3的高16位”的汇编指令为( D ) A.ADDAB .D1 A1, A2, A3 B. ADDAH .D1 A1, A2, A3 C. ADDAD .D1 A1, A2, A3 D. ADD2 .S1 A1, A2, A3 5.能够实现功能“A1加上1000,结果送A1”的汇编指令为:( B ) A.ADD .D1 A1, 1000, A1 B. ADDK .S1 1000 , A1

2 / 18

DSP开发技术考试卷库

C. ADD .D1 1000, A1 D. ADDK .S1 A1, 1000, A3

6.能够实现功能“无符号的A1的高16位乘以有符号A2的低16位,结果送A3”的汇编指令为( A )

A.MPYHULS .M1 A1, A2, A3 B. MPYH .M1 A1, A2, A3 C. MPYHU .M1 A1, A2, A3 D. MPYHL .M1 A1, A2, A3 7. 下面有效的执行包是( B )

A. LDW .D1 *A1,A2 B. LDW .D1 *A1,A2 || LDW .D2 *A2,B2 || LDW .D2 *B2,B3 C. LDW .D1 *A1,A2 D. LDW .D2 *B4,B5 || LDW .D1 *A3,A4 || LDW .D2 *B2,B3 8. 下面有效的执行包是( C )

A. LDW .D1 *A1,A2 B. LDW .D1 *A1,B 2 || STW .D2 A3,*B1 || STW .D2 B3,*B1 C. LDW .D1 *A1,A2 D. LDW .D1 *A1,A2 || STW .D2 B3,*B1 || STW .D1 A3,*A1 9. 下面有效的执行包是( C )

A. MPY .M1X A1,B2,A4 B. MPY .M2X B1,A2,B4 || ADD .L1X A3,B4,A5 || ADD .L2X B3,A4,B5 C. MPY .M1X A1,B2,A4 D. MPY .M1X A1,B2,A4 || ADD .L2X B3,A4,B5 || ADD .L2X A3,B4,A5 10. 下面有效的执行包是( D )

A. ADD .S1 A3:A2,A1,A7:A6 B. ADD .L1 A3:A2,A1,A7:A6 || SUB .S1 A4,A5,A9:A8 || SUB .S1 A4,A5,A9:A8 C. ADD .L1 A3:A2,A1,A7:A6 D. ADD .L1 A3:A2,A1,A7:A6 || SUB .L1 A4,A5,A9:A8 || SUB .S2 B4,B5,B9:B8 11.下面TMS320C6000汇编指令中有效的是( A )

A.LDW .D2 *+B5[100],B2 B.LDW .D2 +B5[100],*B2 C.LDW .M2 *+B5[100],B2 D.LDW .M2 +B5[100],*B2 12.下面TMS320C6000汇编指令中有效的是( B )

A.CLR .D1 A1, 8, 5, B2 B.CLR .S1 A1, 8, 5, A2 C.CLR .L1 A1, 8, 5, A2 D.CLR .M1 A1, 8, 5, A2 13. 下面TMS320C6000汇编指令中有效的是( C )

A.MVC .S2 AMR, A1 B.MVC .S2 B2, B1 C.MVC .S2 AMR, B1 D.MVC .S1 A2, A1 14. 下面TMS320C6000汇编指令中有效的是( D )

A. MPY .S1 A1,A3, A5 B. MPY .D1 A1,A3, A5 C. MPY .L1 A1,A3, A5 D. MPY .M1 A1,A3, A5

15.能够实现功能“将A1的内容左移A2中低5位值的位数,符号位改变时,置SAT位”的汇编指令为( A )

A.SSHL .S1 A1, A2, A3 B. SSHL .S1 A1, A2, B3

3 / 18

DSP开发技术考试卷库

C. SSHL .L1 A1, A2, A3 D. SSHL .M1 A1, A2, A3

16.能够实现功能“将B1的第2到第10位置1,结果送B2”的汇编指令为( B ) A.SET . L2 B1, 2, 10, B2 B. SET . S2 B1, 2, 10, B2 C. SET . M2 B1, 2, 10, B2 D. SET . D2 B1, 2, 10, B2 17. 下面有效的执行包是( C )

A. LDW .D1 *A4,A5 B. LDW .D1 *B4,A5 || STW .D2 A6,*B4 || STW .D2 B6,*A4 C. LDW .D1 *A4,B5 D. LDW .D1 *A4,A5 || STW .D2 A6,*B4 || STW .D2 *A6,B4 18. 下面有效的执行包是( D )

A. NOT .L1 A1,A5 B. NOT .S2 B1,B5

|| SUB .S1 A2,A3,A5 || SUB .L2 B2,B3,B5 C. NOT .S1 A1,A5 D. NOT .S1 A1,A4

|| SUB .L1 A2,A3,A5 || SUB .L1 A2,A3,A5 19. 下面有效的执行包是( A )

A. SET .S1 A0,A1,A2 B. SET .L1 A0,A1,A2 || ADD .S2 B3,B4,B5 || ADD .S1 A3,A4,A5 C. SET .S2 B0,B1,B2 D. SET .S1 A0,A1,A2 || ADD .S2 B3,B4,B5 || ADD .S1 A3,A4,A5 20. 下面有效的执行包是( B )

A. MPY .M1 A0,A1,A2 B. MPY .M1 A4,A1,A2 || ADD .L1 A0,A0,A1 || ADD .L1 A0,A0,A1 || SUB .S1 A0,A0,A3 || SUB .S1 A0,A0,A3 C. MPY .L1 A0,A1,A2 D. MPY .M1 A0,A1,A2 || ADD .L1 A0,A0,A1 || ADD .S1 A0,A0,A1 || SUB .S1 A0,A0,A3 || SUB .S1 A0,A0,A3

三、是非类型

2.C6000系列芯片的程序总线总宽度为256 bit,每一次取指操作都是取指令,称为一 个取指包。( √ )

3. C6000系列CPU 有2个类似的可进行数据处理的数据通路A和B,每个通路有4个功能单元。( √ )

4. Load和Store类指令用于在通用寄存器组与片内数据存储器之间交换数据,此时2个数

据寻址单元(.D1和.D2)负责产生数据存储器地址。 ( √ )

1.程序读入及指令译码、分配机构包括程序取指单元、指令分配单元和指令译码单元。( √ )

5. 作为间接寻址的地址指针,寄存器A4~A7和B4~B7还可以以循环寻址方式工作。( √ ) 6. .L与.S是主要的乘法运算单元。( × ) 7. 浮点流水线的执行级最多有5个节拍 (E1~E5), 定点流水线的执行级最多有10个节

拍(E1~E10)。( × )

4 / 18

DSP开发技术考试卷库

8. C6000的不可屏蔽中断具有最高优先级,复位中断为第2优先级。( × ) 9. 在C6000中,每一个中断源是否被使能受控制状态寄存器(CSR)控制。( × ) 10. 对于C6000,若在头5个执行包内包含转移指令或者处在跳转延迟期间,则非复位中断

被延迟。 ( √ ) 11. C6000没有陷阱指令,但它可由软件编程设置成类似的功能。 12. 在C6000中,单周期指令的延迟间隙为1。 13. 符号“||”表示本条指令与之前一条指令并行执行。

14. 伪指令.no_mdep的功能是:指明存储器有相关性。( × ) 15.C6000内部RAM只能用于放程序代码段。

16.C6000系列DSPs最主要的特点是在体系结构上采用了VelociTI甚长指令字(VLIW, Very

Long Instruction Word)结构。( √ ) 17.C6000系列芯片的程序总线总宽度为256 bit,每一次取指操作都是取指令,称为一个取指包。执行时,每条指令占用1个功能单元。( √ )

18. C6000系列的CPU具有2个寄存器组交叉通路(1X和2X)和2个数据寻址通路(DA1和DA2)。( √ )

19. 对于C621x/C671x/Cx,片内采用3 级存储器结构。( × ) 20. 对于C621x/C671x/Cx,主机口HPI是一个串行端口。 ( × ) 21. 对乘法指令(MPY)而言,如源操作数在第i周期被读取,计算结果在第(i+1)周期就

能被访问。 ( √ ) 22. 对于指令“LDH .D1 *+A4[15], A8”,其意义为,先修改地址,再传送数据,地址偏移量

按 [A1]×2计算。 ( × ) 23.对于指令“LDW .D1 *-A4[15], A6”,其意义为,先传送数据,然后再修改地址,地址偏移量按 [A1]×2计算。( × ) 24. 汇编优化器仅对以伪指令对“.proc”、“.endproc”或“.cproc”、“.endproc”定义的

线性汇编程序段优化。 ( √ )

25. 伪指令label .trip min的功能为指定循环计数器的值。( √ ) 26. 在C编译器的优化选项中,-n项的作用是对文件级的程序进行优化。( × )

27. 对于C语言文件,stdio函数分配在.cio段 中。

28. 对于C6000编译器,长型(long)型数据的长度为 bit。( × ) 29. –pm项的功能为:在程序级将代码优化,它容许编译器对整个项目的所有源程序联合观

测。( √ ) 30.在使用-o3选项进行优化编译时,尽量联合使用-pm选项。 ( × )

四、综合类型

1、图4是TMS320C62xx/C67xxCPU内核及数据通路结构图,说明图中符号A0~A15、L1、S1、 M1、D1、DA1、1X、LD1 32 MSB、LD1 32 LSB、ST1所代表的功能。

5 / 18

DSP开发技术考试卷库

src1

src2

.L1 dstLong dst 88Long srcLD1 32 MSB ST18Long src8

Long dst .S1dstsrc1Data path A

src2

dst src1.M1 src2

LD1 32 LSB

dst .D1src1DA1src2

图4

答案:A0~A15为通用寄存器;

L1、S1、M1、D1为四个功能单元; 1X为寄存器组交叉通道;

LD1 32 MSB的功能为读取存储器内容的高32位; LD1 32 LSB的功能为读取存储器内容的低32位; ST1的功能为将寄存器中的内容存入存储器中。 (2)正确写出图2-9的各取指包的程序代码。

指令A ;EP k FP n

|| 指令B

指令C ;EP k+1 FP n

|| 指令D || 指令E

指令F ;EP k+2 FP n

|| 指令G || 指令H

6 / 18

3232Registerfile A(A0-A15)1XRegisterfile B(B0-B15)DSP开发技术考试卷库

指令I ;EP k+3 FP n+1

|| 指令J || 指令K || 指令L || 指令M || 指令N || 指令O || 指令P 4.(10分)有一代码序列,包括两个取指包(16条指令),第一个取指包有两个执行包,第二个取指包有三个执行包,如下所示:

指令A || 指令B || 指令C || 指令D || 指令E 指令F || 指令G || 指令H 指令I || 指令J || 指令K 指令L || 指令M || 指令N || 指令O

|| 指令P

请画出其在TMS320C6000流水线中执行的时序图。

答案:

Clock cycleFetchExecute packetpacket(FP)(EP) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 nkPGPSPWPRDPDCE1E2E3E4E5E6E7E8E9E10nn+1n+1n+1n+2n+3n+4k+1k+2k+3k+4k+5k+6k+7PGPSPGPWPSPGPRPWPSPGDPDCDPPRPWPSPGE1DCDPPRPWPSPGE2E1DCDPPRPWPSE3E2E1DCDPPRPWE4E3E2E1DCDPPRE5E4E3E2E1DCDPE6E5E4E3E2E1DCE7E6E5E4E3E2E1E8E7E6E5E4E3E2E9E8E7E6E5E4E3E10E9E8E7E6E5E4图a 流水线中执行的时序图如图a所示。

4、(10分)写出式S答案:c语言程序

a(i)b(i)c(i)的c语言及汇编语言程序。

i11007 / 18

DSP开发技术考试卷库

void w_vec(short a[ ],short b[ ],short c[ ], s[ ])

{

int i;

for (i=0;i<100;i++) {

s[i] = a[i]* b[i] + c[i]; } }

汇编语言程序

.global _dotp

_dotp .cproc a, b

.reg sum, sum0, sum1, sum2, sum3,cntr .reg ai_i1, bi_i1, ci_i1, pi, pi1

MVK 50, cntr ; cntr = 100/2

ZERO sum0 ; multiply result = 0 ZERO sum1 ; multiply result = 0 ZERO sum2 ; multiply result = 0 LOOP: .trip 50

LDW *a++, ai_i1 ; load ai & ai+1 from memory LDW *b++, bi_i1 ; load bi & bi+1 from memory MPY ai_i1, bi_i1,pi ; a i * bi MPYH ai_i1, bi_i1,pi1 ; ai+1 * bi+1

ADD pi, sum0, sum0 ; sum0 += (a i* bi) ADD pi1, sum1, sum1 ; sum1 += (ai+1 * bi+1) [cntr] SUB cntr, 1, cntr ; decrement loop counter [cntr] B LOOP ; branch to loop

ADD sum0, sum1, sum2 ; compute final result1 MVK 100, cntr ; cntr = 100 LOOP1: .trip 100

LDW *c++, ci_i1 ; load ci & ci+1 from memory ADD ci, sum2, sum2 ; sum2+=ci ADD ci+1, sum3, sum3 ; sum3+=ci+1

ADD sum2, sum3, sum ; compute final result [cntr] SUB cntr, 1, cntr ; decrement loop counter [cntr] B LOOP1 ; branch to loop .return sum .endproc 6、(1)表3为编写C6000中断服务表指针寄存器的地址,试根据该表编写中断向量程 序,要求在所编写的程序中,指定INT15作为将要发生的中断。(5分) unused .macro id

.global unused:id: unused:id:

b unused:id: ; nested branches to block interrupts

8 / 18

DSP开发技术考试卷库

nop 4

b unused:id: nop nop nop nop nop .endm .sect \".vectors\"

.ref _c_int00 ; C entry point

.align 32*8*4 ; must be aligned on 256 word boundary(2分) RESET: ; reset vector

mvkl _c_int00,b0 ; load destination function address to b0 mvkh _c_int00,b0

b b0 ; start branch to destination function mvc PCE1,b0 ; address of interrupt vectors mvc b0,ISTP ; set table to point here nop 3 ; fill delay slot nop nop

; plug unused interrupts with infinite loops to ; catch stray interrupts unused 1 unused 2 unused 3 unused 4 unused 5 unused 6 unused 7 unused 8 unused 9 unused 10 unused 11 unused 12 unused 13 unused 14 ;unused 15

mvkl _Timer,b0 mvkh _Timer,b0 .ref _Timer b b0 nop nop nop

9 / 18

DSP开发技术考试卷库

nop nop

2、《实验教程》

(1)根据要求正确写出cmd文件

(2)掌握A/D;D/A;外中断(要求指定某个中断);定时器(要求时间常数的设定);FIR滤波器; IIR滤波器各部分主程序的设计。

AD

#include \"ICETEK-C6713-A.h\"

#define DXR12 (*(unsigned int *)0x01900004) #define DRR12 (*(unsigned int *)0x01900000) /* Define McBSP1 Registers */

#define McBSP1_DRR *(int *)0x1900000 /* Address of data receive reg. */ #define McBSP1_DXR *(int *)0x1900004 /* Address of data transmit reg. */ #define McBSP1_SPCR *(int *)0x1900008 /* Address of serial port contl. reg. */ #define McBSP1_RCR *(int *)0x190000C /* Address of receive control reg. */ #define McBSP1_XCR *(int *)0x1900010 /* Address of transmit control reg. */ #define McBSP1_SRGR *(int *)0x1900014 /* Address of sample rate generator */ #define McBSP1_MCR *(int *)0x1900018 /* Address of multichannel reg. */ #define McBSP1_RCER *(int *)0x190001C /* Address of receive channel enable. */ #define McBSP1_XCER *(int *)0x1900020 /* Address of transmit channel enable. */ #define McBSP1_PCR *(int *)0x1900024 /* Address of pin control reg. */ #define MCWA *(char *)0x90100008 void initMCBSP1(void); void interrupt Timer( void ); void initInterrupt(void);

short int nChannelA0[256],nChannelA1[256]; short int nAD0[256],nAD1[256]; int nPointNumber; int flage; int uWork; int inp[256]; int length; int channel; main() {

nPointNumber=0;

10 / 18

DSP开发技术考试卷库

init_emif(); // 初始化emif InitCTR(); // 初始化ICETEK-CTR initInterrupt(); MCWA=0x0001;

CSR&=0xfffffffe; // 关中断 GIE=0 initMCBSP1(); /*int j; asm(\" ssbx INTM\"); // 关闭可屏蔽中断 *(int *)0x58=0x0; j= PMST; PMST = j&0xff; IMR = 0x8; TCR = 0x417; // 计数器分频系数=8 TIM = 8; PRD = 0x157; TCR = 0x427; // IFR = 0x100; // 其中,时钟周期为8MHz

flage=0; channel=0; port3006=1;

*(int *)0x58=0x1007; initMcBSP2(); asm(\" rsbx INTM\"); // 开中断进行转换*/ flage=0; channel=0; CSR=CSR|1; // 开中断 while ( 1 ) { } }

void interrupt Timer( void ) {

if(channel) {

DXR12=0xe000; } else {

DXR12=0xc000; }

11 / 18

DSP开发技术考试卷库

uWork=DRR12; uWork=uWork>>20; uWork&=0xff;

inp[length]=uWork; length++; length%=256; if(length==0) {

asm(\" nop\"); //此处设软件断点 } }

void initInterrupt(void) { // 设置中断控制寄存器 CSR&=0xfffffffe; // 关中断 GIE=0 ISTP=0x00000c00; // 重置中断向量表到0C00h IMH=0x08000000; // 指定Timer1产生int15中断 IML=0; ICR=0xff; // 清除等待的中断 IER=0x8003; // 使能int15中断 // 设置定时器产生中断信号的频率 TIMER1PRD=0x1000; // 定时器1的周期=0x1000 TIMER1CTL=0x3c0; // 开始计数 CSR=CSR|1; // 开中断 }

void initMCBSP1(void) {

McBSP1_SPCR = 0; McBSP1_RCR = 0x10040; McBSP1_XCR = 0x10040; McBSP1_SRGR = 0x20000083; McBSP1_PCR = 0xa08; McBSP1_SPCR = 0xc15801; } DA

#include \"ICETEK-C6713-A.h\" #include \"math.h\"

#define DAOUTA (*(unsigned short int *)0x9010000c) #define DAOUTB (*(unsigned short int *)0x9010000e)

12 / 18

DSP开发技术考试卷库

main() {

int i;

init_emif(); // 初始化emif InitCTR(); // 初始化ICETEK-CTR i=0; while(1) {

if(i>0x3ff) i=0; i++;

DAOUTA=i; DAOUTB=i; } }

XINT外中断

#include \"ICETEK-C6713-A.h\"

main() { unsigned char dbScanCode;

init_emif(); // 初始化emif InitCTR(); // 初始化ICETEK-CTR CTRLR=0xc8; // 使能IO InitInterrupt(); while ( 1 ) { dbScanCode=GetKey(); if ( dbScanCode== 9 ) break; Delay(256); } CloseCTR(); exit(0); }

13 / 18

DSP开发技术考试卷库

void InitInterrupt(void) { // 设置中断控制寄存器 CSR&=0xfffffffe; // 关中断 GIE=0 ISTP=0x00000c00; // 重置中断向量表到0C00h IMH=0x0; // 指定xint5中断 IML=0x0a0; ICR=0xff; // 清除等待的中断 IER=0x23; // 使能xint5中断 CSR=CSR|1; // 开中断 }

void interrupt XINT5() //中断响应函数 {

{ LBDS^=1; } }

TIMER

#include \"ICETEK-C6713-A.h\"

main() { unsigned char dbScanCode;

init_emif(); // 初始化emif InitCTR(); // 初始化ICETEK-CTR InitInterrupt(); while ( 1 ) { dbScanCode=GetKey(); if ( dbScanCode==SCANCODE_Enter ) break; Delay(16); } CloseCTR(); exit(0); }

void InitInterrupt(void)

14 / 18

DSP开发技术考试卷库

{ // 设置中断控制寄存器 CSR&=0xfffffffe; // 关中断 GIE=0 ISTP=0x00000c00; // 重置中断向量表到0C00h IMH=0x08000000; // 指定Timer1产生int15中断 IML=0; ICR=0xff; // 清除等待的中断 IER=0x8003; // 使能int15中断 // 设置定时器产生中断信号的频率 TIMER1PRD=3125000; // 定时器1的周期=3125000, 0.5s TIMER1CTL=0x3c0; // 开始计数 CSR=CSR|1; // 开中断 }

void interrupt Timer() //中断响应函数 { LBDS^=1; }

实验四、IIR滤波器设计。 (一)实验目的:

1、掌握Betterworth、Chebyshev滤波器的设计方法;

2、掌握脉冲响应不变法及双线性变换法设计滤波器的方法。 (二)实验内容:

1、设计一个满足一定指标的BW型模拟低通滤波器。(课本例4-10) 程序:

wp=2*pi*1000;ws=2*pi*3000;Ap=1;As=50; [N,wc]=buttord(wp,ws,Ap,As,'s') [num,den]=butter(N,wc,'s') omega1=linspace(0,wp,500); omega2=linspace(wp,ws,200);

omega3=linspace(ws,5*1000*pi*2,500); H1=20*log10(abs(freqs(num,den,omega1))); H2=20*log10(abs(freqs(num,den,omega2))); H3=20*log10(abs(freqs(num,den,omega3))); fprintf('Ap=%.4f\\n',max(-H1)); fprintf('As=%.4f\\n',min(-H3));

plot([omega1 omega2 omega3]/(2*pi),[H1 H2 H3])

15 / 18

DSP开发技术考试卷库

2: [N,wc]=cheb1ord(wp,ws,Ap,As,'s') [num,den]=cheby1(N,Ap,wc,'s')

3: [N,wc]=cheb2ord(wp,ws,Ap,As,'s') [num,den]=cheby2(N,As,wc,'s')

4:[N,wc]=ellipord(wp,ws,Ap,As,'s') [num,den]=ellip(N,Ap,As,wc,'s')

16 / 18

DSP开发技术考试卷库

实验五、FIR滤波器设计。 (一)实验目的:

1、掌握用窗函数法及频率采样法设计滤波器的方法; 2、熟悉线性相位FIR数字滤波器的特性; 3、了解厂函数及频率取样对滤波器的影响。 (二)实验内容:

1、利用窗函数法设计一个满足一定条件的Ⅰ型线性相位FIR高通滤波器。(课本例5-4) Wp=0.8*pi;Ws=0.7*pi;Ap=0.3;As=40; N=ceil(6.2*pi/(Wp-Ws)); N=mod(N+1,2)+N; M=N-1;

w=hanning(N)'; Wc=(Wp+Ws)/2; k=0:M;

hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);hd(0.5*M+1)=hd(0.5*M+1)+1; h=hd.*w;

omega=linspace(0,pi,512); mag=freqz(h,[1],omega);

plot(omega/pi,20*log10(abs(mag)));

17 / 18

DSP开发技术考试卷库

2:Wp=0.8*pi;Ws=0.7*pi;Ap=0.037;As=44

;

18 / 18

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务