dsp作业

2024-09-16

dsp作业(通用5篇)

dsp作业 篇1

.c图

实验二

#define UINT unsigned int UINT i,*p,*n;void main(void){

p=(UINT *)0x0300;

for(i=0;i<20;i++)

{

if(*p==0x8888)

n=p;

p++;

} }.cmd图

MEMORY {

PAGE 0: PROG:

origin = 1a00h, length = 2580h

vectors: origin = 3f80h, length = 80h

PAGE 1: DATA:

origin = 0200h, length = 1800h }

SECTIONS {

.text

> PROG PAGE 0

.cinit > PROG PAGE 0

//.switch > PROG PAGE 0

vect

> vectors PAGE 0

.data

> DATA PAGE 1

.bss

> DATA PAGE 1

.const > DATA PAGE 1

.sysmem > DATA PAGE 1

.stack > DATA PAGE 1 } xf高低电平等时间循环变化截图如下所示:

找出由地址0x0300~0x0320中存储数据为0x8888的地址截图如下所示:

心得体会:

经过这次实验,理解了对地址0x0300~0x0320中存储数据为0x8888的寻找和设置。

正弦信号DSP 篇2

1、绪论 1.1 课题背景

数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,信号处理已经在通信等领域得到了极为广泛的应用。

长期以来,信号处理技术—直用于转换或产生模拟或数字信号。其中应用的最频繁的领域就是信号的滤波。此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了数字信号处理技术。数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。而本文中基于DSP技术设计的正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。1.2 课题内容

利用基于CCS开发环境中的C54x汇编语言来实现正弦信号发生装置。

2、设计原理

一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。查表法是使用比较普遍的方法,优点是处理速度快,调频调相容易,精度高,但需要的存储器容量很大。泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

本文采用了泰勒级数展开法。一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:

x3x5x7x9sin(x)x3!5!7!9!x2x2x2x2 x(1(1(1(1))))23456789x2x4x6x8cos(x)12!4!6!8!x2x2x2x2 1(1(1(1)))2345678式中:x为θ的弧度值,x2f/fs(fs是采样频率;f是所要发生的信号频率)

3、设计方案

本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。

通过计算一个角度的正弦值和余弦值程序可实现正弦波,其步骤如下:

开 始初始化设置调用sin和cos程序计算0~45°的值Sin2α=2sinα*cosα求0~90°的sin值(间隔为1°)1.利用sinx和cosx子程序,计算0—45°(间 隔为0.5°)的正弦和余弦值

2.利用sin(2x)=2sin(x)cos(x)公式,计算0—90°的正弦值(间隔为1°)3.通过复制,获得0—359°的正弦值 4.将0—359°的正弦值重复从PA口输出,遍可得到正弦波

整个系统相应的软件流程图如右图所示。

图1 程序流程图

结 束正弦波重复向PA口输出重复得到0~359°正弦值

4、程序设计

4.1 产生正弦波程序清单sin.asm.title “sin.asm” //为汇编文件取名为“sin.asm”.mmregs //定义存储器映像寄存器.def _c_int00.ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx //定义标号 sin_x:.usect “sin_x”,360 //为“sin_x”保留360个存储空间 STACK:.usect “STACK”,10 //为堆栈保留10个存储空间 k_theta.set 286 //theta=pi/360(0.5deg)PA0.set 0 _c_int00.text //定义文本程序代码段 STM #STACK+10,SP //设置堆栈指针

STM k_theta,AR0 //AR0-->K_theta(increment)STM 0,AR1 //(AR1)=X(rad)STM #sin_x,AR6 //AR6→sin(x)STM #90,BRC //form sin0(deg.)—sin90(deg)RPTB loop1-1 //重复执行块语句(下条语句开始至 loop1-1)91次 LDM AR1,A LD #d_xs,DP STL A,@d_xs //(A)低16位→d_xs STL A,@d_xc //(A)CALL sinx // CALL cosx // LD #d_sinx,DP //DP LD @d_sinx,16,A //A=sin(x)MPYA @d_cosx //B= sin(x)*cos(x)STH B,1,*AR6+ //AR6 MAR *AR1+0 //loop1: STM #sin_x+89,AR7 //sin91(deg.)STM #88,BRC RPTB loop2-1 // LD *AR7-,A //((AR7))STL A,*AR6+ //(A)loop2: STM #179,BRC //sin180(deg.)(BRC)=179, STM #sin_x,AR7 //AR7 RPTB loop3-1 LD *AR7+,A //((AR7))NEG A // STL A,*AR6+ //Aloop3: STM #sin_x,AR6 //AR6 STM #1,AR0 //AR STM #360,bk //BKloop4: PORTW *AR6+0%,PA0 //PA0=*AR6+0%, B loop4 sinx:.def d_xs,d_sinx //.data //低16位→d_xc 调用sinx程序 调用cosx程序 ←d_sinx →2*sin(x)*cos(x)修改辅助寄存器AR1

—sin179(deg.)重复执行下条指令至loop2-1处90次 →A,然后AR7减去1 低16位→AR6

—sin359(deg.)重复执行180次 指向sin_x首地址 →A,然后AR7加1 累加器变负 低16位→AR6 指向sin_x ←01 ←360

向PA0输出数据 定义标号d_xs,d_sinx 定义数据代码段 table_s.word 01c7h //c1=1/(8*9).word 030bh //c1=1/(6*7).word 0666h //c1=1/(4*5).word 1556h //c1=1/(2*3)d_coef_s.usect “coef_s”,4 //为“coef_s”保留4个存储空间 d_xs.usect “sin_vars”,1 //为d_xs中sin_vars保留1个存

储空间

d_squr_xs.usect “sin_vars”,1 //d_temp_s.usect “sin_vars”,1 // d_sinx.usect “sin_vars”,1 //c_l_s.usect “sin_vars”,1 //.text // SSBX FRCT // STM #d_coef_s,AR5 //AR5 RPT #3 // MVPD #table_s,*AR5+ //table_s STM #d_coef_s,AR3 //AR3 STM #d_xs,AR2 //AR2 STM #c_l_s,AR4 //AR4 ST #7FFFh,c_l_s //7FFFh SQUR *AR2+,A //AR2 ST A,*AR2 // ||LD *AR4,B // MASR *AR2+,*AR3+,B,A // MPYA A // STH A,*AR2 // MASR *AR2-,*AR3+,B,A // MPYA *AR2+ //AR2 ST B,*AR2 // ||LD *AR4,B //为d_squr_xs中sin_vars保留1个

存储空间

为d_temp_s中sin_vars保留1个 存储空间

为d_sinx中sin_vars保留1个存储

空间

为d_xs中sin_vars保留1个存储 空间

定义代码开始段

设置FRCT=1以解决冗余符号位 指向d_coef_s首地址 重复下条指令4次

中的数复制到AR5指向 的单元

指向d_coef_s首地址 指向d_xs首地址 指向c_l_s首地址 →c_l_s

指向累加器A中的数值求其平方(A)左移16位→AR2(AR4)左移16位→B

从累加器A中减去(AR2)*(AR3)操作数与累加器A中高位相乘(A)高16位→AR2

从累加器A中减去(AR2)*(AR3)指向的数与累加器A的高16位相乘(B)左移16位→AR2(AR4)左移16位→B MASR *AR2-,*AR3+,B,A //从累加器A中减去(AR2)*(AR3)MPYA *AR2+ //与累加器A中高16位相乘 ST B,*AR2 //(B)左移16位→AR2 ||LD *AR4,B //(AR4)左移16位→B MASR *AR2-,*AR3+,B,A //从累加器A中减去(AR2)*(AR3)MPYA d_xs //d_xs指向的操作数与累加器A中高16位相乘 STH B,d_sinx //(B)高16位→d_sinx RET //cosx:.def d_xc,d_cosx //d_coef_c.usect “coef_c”,4 //.data //table_c.word 0249h //c1=1/(7*8).word 0444h //c1=1/(6*5).word 0aabh //c1=1/(3*4).word 4000h //c1=1/2 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_l_c.usect “cos_vars”,1 //.text // SSBX FRCT //FRCT=1 STM #d_coef_c,AR5 //AR5 RPT #3 // MVPD #table_c,*AR5+ // STM #d_coef_c,AR3 //AR3 STM #d_xc,AR2 //AR2 STM #c_l_c,AR4 //AR4 ST #7FFFh,c_l_c //7FFFh SQUR *AR2+,A //返回 定义标号d_xc,d_cosx 为coef_c保留4个存储空间 定义数据代码段 为d_xc中cos_vars保存1个存储单元 为d_squr_xc中cos_vars保存1个 存储单元

为d_temp_c中cos_vars保存1个存储

单元

为d_cosx中cos_vars保存1个存储单

为c_l_c中cos_vars保存1个存储单

定义文本代码段

以清除冗余符号位 指向d_coef_c首地址 重复下条指令4次

把table_c中的数复制到中AR5 指向d_coef_c首地址 指向d_xc首地址 指向c_l_c首地址 →c_l_c

求x的平方存放在累加器A中 ST A,*AR2 //(A)左移16位→AR2 ||LD *AR4,B //(AR4)左移16位→B MASR *AR2+,*AR3+,B,A //A=1-x^2/56,T=x^2 MPYA A //A=T*A=x^2(1-x^2/56)STH A,*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))ST B,*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/12(1-x^2/30(1-x^2/56))SFTA A,-1,A NEG A MPYA *AR2+ //B=1-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)))STH B,*AR2 //cos(theta)RET.end 4.2 正弦波程序链接命令文件sin.cmd.cmd文件描述输入文件和输出文件,说明系统中有哪些可用存储器、程序段、堆栈及复位向量和中断向量等安排在什么地方。其中MEMORY段就是用来规定目标存储器的模型,通过这条指令,可以定义系统中所包含的各种形式的存储器,以及它们占据的地址范围;SECTIONS段说明如何将输入段组合成输出段以及在可执行文件中定义输出段、规定输出段在存储器中的位置等。MEMORY { PAGE 0: EPROM: org = 0E000h, len = 1000h VECS: org = 0FF80h, len = 0080h PAGE 1: SPRAM: org = 0060h, len = 0020h DARAM1: org = 0080h, len = 0010h DARAM2: org = 0090h, len = 0010h DARAM3: org = 0200h, len = 0200h } SECTIONS {.text :>EPROM PAGE 0 //文本代码段其实地址为0E000h,长度为 1000h.data :>EPROM PAGE 0 //数据代码段其实地址为0D000h STACK :>SPRAM PAGE 1 //堆栈起始地址为0060h,长度为0020h sin_vars :>DARAM1 PAGE 1 //标号为sin_vars段的起始地址为0080

长度为0010h coef_s :>DARAM1 PAGE 1 //标号为coef_s段的起始地址为0070h 长度为0010h cos_vars :>DARAM2 PAGE 1 //标号为cos_vars段的起始地址为0090h 长度为0010h coef_c :>DARAM2 PAGE 1 //标号为coef_c段的起始地址为0080h 长度为0020h sin_x : align(512){} > DARAM3 PAGE 1.vectors :>VECS PAGE 0 }

5、仿真与调试

5.1 CCS工程项目的调试

利用 CCS 集成开发环境,用户可以在一个开发环境下完成工程定义、程序 编辑、编译链接、调试和数据分析等工作环节。⑴ 创建工程(project)文件

选择 Project→New,在“Project”文本框中键入将要创建的工程项目名,本例工程项目名为“sin” ⑵ 向工程中添加文件

选择 Project→Add Files to Project,将 sine.asm文件自动添加到 Project→Source 中。用同样的方法 将 sine.cmd 文件添加到对应的目录中。⑶ 构建工程,工程所需文件编辑完成后,可以对该工程进行编译链接,产生可执行文件,为调试做准备。

选择 Project→Build,系统提示没有出错信息后,系统自动生成一个可执行文件,sine.out 文件。⑷ 载入可执行文件 选择 File→Load Program 载入编译链接好的可执行文件sine.out ⑸ 运行程序

选择 Debug→Run运行,可以通过查看内存表等方法,看到程序运行的结果。5.2 仿真结果

选择 View→Graph→Time/Frequence

得到的正弦波形如下图所示:

输出结果显示,在CCS图形观察窗口得到了频率稳定,信号干扰小,波形失真度较小的正弦信号。

6、心得体会

DSP简介 篇3

1. 什么是DSP芯片

DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法。(2)程序和数据空间分开,可以同时访问指令和数据。

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4)具有低开销或无开销循环及跳转的硬件支持。(5)快速的中断处理和硬件I/O支持。

(6)具有在单周期内操作的多个硬件地址产生器。(7)可以并行执行多个操作。

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。2.DSP芯片的发展

世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须的单周期芯片。1980年。日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP 芯片。第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮点DSP芯片。1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。而第一个高性能的浮点DSP芯片应是AT&T公司于1984年推出的DSP32。

在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(Texas Instruments,简称TI)的一系列产品。TI公司灾982年成功推出启迪一代DSP芯片TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。

自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),处理能力提高了10多倍。DSP芯片内部关键的乘法器部件从1980年的占模区的40左右下降到5以下,片内RAM增加一个数量级以上。从制造工艺来看,1980年采用4μ的N沟道MOS工艺,而现在则普遍采用亚微米CMOS工艺。DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。

3.DSP芯片的分类

DSP的芯片可以按照以下的三种方式进行分类。(1)按基础特性分

这是根据DSP芯片的工作时钟和指令类型来分类的。如果DSP芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称之为静态DSP芯片。

如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称之为一致性的DSP芯片。(2)按数据格式分

这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称之为定点DSP芯片。以浮点格式工作的称为DSP芯片。不同的浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。(3)按用途分

按照DSP芯片的用途来分,可分为通用型DSP芯片和专用型的DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片。专用型DSP芯片市为特定的DSP运算而设计,更适合特殊的运算,如数字滤波,卷积和FFT等。4.DSP芯片的基本结构 DSP芯片的基本结构包括:

(1)哈佛结构。哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和存储器在两个分开的空间中,因此取指和执行能完全重叠。

(2)流水线操作。流水线与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。

(3)专用的硬件乘法器。乘法速度越快,DSP处理器的性能越高。由于具有专用的应用乘法器,乘法可在一个指令周期内完成。

(4)特殊的DSP指令。特殊的DSP指令DSP芯片是采用特殊的指令。

(5)快速的指令周期。快速的指令周期哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计可使DSP芯片的指令周期在200ns以下。

5.DSP系统的特点

数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点:

(1)接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。

(2)编程方便。DSP系统种的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。

(3)稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。

(4)精度高。16位数字系统可以达到的精度。

(5)可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。(6)集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。

6.DSP芯片的应用

现代数字信号处理器是执行高速数字信号处理的IC电路、它恰好适应多媒体信息化社会需求,迅速发展壮大。如今,世界电子器件市上,各种各样的DSP器件已相当丰富。大大小小封装形式的DSP器件,已广泛应用于各种产品的生产领域,而且DSP的应用领域仍在不断地扩大,发展迅速异常。(1)数字化移动电话

数字化移动电话尽管花样繁杂,但基本上可划为两大类:高速移动电话和低速移动电话。其中,高速移动电话顾名思义是在高速移动体里使用的电话,诸如可在飞机、轮船和汽车等里自由通话的电话。虽然数字化高速移动通过标准很多,但当今普遍应用的是欧洲GSM(GlobalSystemforMobileCommunication)标准。自从推出数字化蜂窝式电话机以来,现已遍布全球70多个国家广泛应用。俗称GSM标准的数字化蜂窝电话,叫作数字化大哥大,它具备国际漫游(Roaming)功能,SIMC(SubscriberIdentificationModuleCard)给用户带来使用大哥大的方便。现正在扩展数据通信服务能力以及它与ISDN系统兼容性,例如,英国BT公司的Cellnet部已经利用GSM提供数字化数据和传真服务,于是东芝笔记本电脑也安上了数字化的大哥大。

低速移动电话就其实质而论。它是数字化无绳电话,仍然保持模拟式无绳电话的子母式结构:子机亦称为手机,可以距母机为百米左右半径内的空间里自由步行移动情况下实现通话;母机也称为基地站,可作为家庭里的留守电话,也可悬挂在商店的墙壁上,街道的电线柱上,广为分布。由统一的交换设施进行管理,实现无缝交递(SeamlessHandOn)功能。这类低速移动电话式标准很多。例如,欧洲较为普遍应用的DECI(DigitalEuropeanCordlessTelecommunictaion),日本、韩国、东南亚应用的PHS(PersonalHandy-phoneSystem)以及Philips和我国联合开发的DCCT(DigitalChinaCordlessTelephone)。其中,尤以PHS和DECT制式低速移动电话发展较快,我国的DCCT由于缺乏关键性的DSP技术仍处于设计阶段。

数字化移动电话(包括高速和低速)的每个手机,都要用至少1个DSP器,因此,高速发展的数字化移动电话急需极为大量的DSP器件。(2)数据调制解调器

从所周知,数字信号处理器的传统应用领域之一,就是调制解调器。如今,调制解调器作为联系通信与多媒体信息处理系统的纽带,日益受到重视。特别是近年来Internet热潮,方兴未艾,普通百姓在Internet上冲浪蔚然成风。利用PC机通过调制解调器经由电话线路,实现拨号连接Internet已是最简便的访问形式。由于Internet用户急剧增加,一度致使28.8Kbps的调制解调器成为市场上的脱销产品。特别是由PC机上利用浏览程序调用活动图像信息时,期望使用数据传送速度更高的调制解调器。为适应这种新需求,国际上已制订出高速(33.6Kbps)调制解调器国际标准。这就意味,在高速调制解调器里需要更高性能的DSP器件。这种33.6Kbps的调制解调器(V.34)

是为传送数据而设计的,在此基础上发展出DSVD调制解调器,它既可传送数据又可传送声音。无疑,这样一来将需要更高功能的DSP器件。

随着高性能调制解调器不断出现,似乎低速的调制解调器如像V.17(14.4Kbps)再也没有用武之地。事实上,刚刚相反,如今信息家电抬头,例如PHS母机留守电话与个人FAX一体化的产品大量上市。这就是说,V.17(14.4Kbps)型的调制解调器仍有市场。于是,各种调制解调器里要求的DSP也是多种多样的。

(3)磁盘/光盘控制器需求

随着多媒体信息化的发展,各种信息存储媒体产品都应运而生,诸如磁盘存储器、CD-ROM和DVD(DigitalVersatileDisk)-ROM新产品纷纷上市。今日的磁盘驱动器HDD,存储容量已相当可观,大型HDD姑且不谈,就连普通PC机的HDD的存储容量已高在1GB以上,详见照片4。小型HDD向高密度、高存储容量和高速存取方向发展,其控制器必须具备高精度和高速响应特性,它所用的DSP性能也是今非昔比,高速DSP是必不可少的关键性器件。

日本的HDD技术不能超过美国,于是把主攻方向集中到光盘技术,在1996年日本第35届ElectronicsShow'96上,终于把DVD-ROM产品公布于众。而且,日本并不以此为满足,志在夺取可擦写的DVD-RAM。仅就DVD-ROM而论,单面1片12cm盘片记录4.7GB信息量,相当于直径12cm的软盘FD片3200张之多,比CD-ROM存储容量高出6倍。如此高密度的DVD-ROM,读出控制的精细程度可想而知。

HDD和光盘机的控制器里之所以必须利用高速DSP,主要是利用其高速“积和”处理能力。因为,盘片旋转控制、磁头定位控制和光盘中的激光束聚焦控制,都是采数字伺服与系统控制技术。这是现在控制技术,建立在数学模型基础之上。通过复杂的矩阵运算实现控制。没有高速运算的DSP,是绝对不行的。(4)图形图像处理需求

DVD里应用的活动图像压缩/解压缩用MPEG2编码/译码器,同时也广泛地应用于视频点播VOD、高品位有线电视和卫星广播等诸多领域。在这些领域里,应用的DSP应该具备更高的处理速度和功能。而且,活动图像压缩/解压技术也日新月异,例如,DCT变换域编码很难提高压缩比与重构图像质量,于是出现了对以视觉感知特性为指导的小波分析图像压缩方法。新的算法出现,要求相应的高性能DSP。最近,日本各大学和高技术企业对于开发虚拟现实VR系统,投入相当力量,利用现代计算机图像学CG生成3维图形,迫切需要多个DSP并行处理系统。其中,系统里的结点DSP单元,要求采用与并行处理相适应的体系结构。

彩色静止图像压缩/解压,现在普遍应用JPEG标准,其核心算法也是离散余弦变换。JPEG编码/译码器的应用,除了数字化照像机之外,估计彩色打印机和彩色扫描器也将要应用。因此,对于普通DSP的用量,必将日益增长。

(5)汽车电子系统及其它应用领域

汽车电子系统日益兴旺发达起来,诸如装设红外线和毫米波雷达,将需用DSP进行分析。如今,汽车愈来愈多,防冲撞系统已成为研究热点。而且,利用摄像机拍摄的图像数据需要经过DSP处理,才能在驾驶系统里显示出来,供驾驶人员参考。

基于DSP开关电源 篇4

摘要

本文以TMs320LF2407A为控制核心,介绍了一种基于DSP的大功率开关电源的设计方案。该电源采用半桥式逆变电路拓扑结构,应用脉宽调制和软件PID调节技术实现了电压的稳定输出。最后,给出了试验结果。试验表明,该电源具有良好的性能,完全满足技术规定要求。关键字:DSP;开关电源;PID调节

ABSTRACT In this paper,setting TMs320LF2407A as the control center, it describes a DSP-based high-power switching power source design.The power supply uses a half-bridge inverter circuit topology, applications and software PID regulator pulse width modulation technology to achieve a stable output voltage.Finally, the experimental results was given.The experimental results show that the power supply has a good performance, fully meeting the technical requirements.Key Words: DSP;Switching power supply;PID

0 引 言

信息时代离不开电子设备,随着电子技术的高速发展,电子设备的种类与日俱增,与人们的工作、生活的关系也日益密切。任何电子设备又都离不开可靠的供电电源,它们对电源供电质量的要求也越来越高。

目前,开关电源以具有小型、轻量和高效的特点而被广泛应用于电子设备中,是当今电子信息产业飞速发展不可缺少的一种电源。与之相应,在微电子技术发展的带动下,DSP芯片的发展日新月异,因此基于DSP芯片的开关电源拥有着广阔的前景,也是开关电源今后的发展趋势。电源的总体方案设计

本文所设计的开关电源的基本组成原理框图如图1所示,主要由功率主电路、DSP控制回路以及其它辅助电路组成。

开关电源的主要优点在“高频”上。通常滤波电感、电容和变压器在电源装置的体积和重量中占很大比例。从“电路”和“电机学”的有关知识可知,提高开关频率可以减小滤波器的参数,并使变压器小型化,从而有效地降低电源装置的体积和重量。以带有铁芯的变压器为例,分析如下:

图1.开关电源基本原理

设铁芯中的磁通按正弦规律变化,即φ= φMsinωt,则:

eLWdWcostEMcost dt(1)式中,EM= ωWφ M=2πfWφM,在正弦情况下,EM=√2E,φM=BMS,故:

E2fWM4.44fWBMS 2(2)式中,f为铁芯电路的电源频率;W 为铁芯电路线圈匝数;BM为铁芯的磁感应强度;S为铁芯线圈截面积。

从公式可以看出电源频率越高,铁芯截面积可以设计得越小,如果能把频率从50 Hz提高到50 kHz,即提高了一千倍,则变压器所需截面积可以缩小一千倍,这样可以大大减小电源的体积。

综合电源的体积、开关损耗以及系统抗干扰能力等多方面因素的考虑,本开关电源的开关频率设定为30 kHZ。系统的硬件设计 2.1 功率主电路

本电源功率主回路采用“AC-DC-AC—DC”变换的结构,主要由输入电网EMI滤波器、输人整流滤波电路、高频逆变电路、高频变压器、输出整流滤波电路等几部分组成,如图2所示。

图2.功率主电路原理图

图3.功军主回路的电压波形变化

本开关电源采用半桥式功率逆变电路。如图2所示,输入市电经EMI滤波器滤波,大大减少了交流电源输入的电磁干扰,并同时防止开关电源产生的谐波串扰到输入电源端。再经过桥式整流电路、滤波电路变成直流电压加在P、N两点问。P、N之间接人一个小容量、高耐压的无感电容,起到高频滤波的作用。半桥式功率变换电路与全桥式功率变换电路类似,只是其中两个功率开关器件改由两个容量相等的电容CA1和CA2代替。在实际应用中为了提高电容的容量以及耐压程度,CA1和CA2往往采用的是由多个等值电容并联组成的电容组。C A1、CA2 的容量选值应在电源体积和重量允许的条件下尽可能的大,以减小输出电压的纹波系数和低频振荡。CA1 和CA2 在这里同时起到了静态时分压的作用,使Ua =Uin/2。

在本电源的设计中,采用IGBT来作为功率开关器件。它既具有MOSFET的通断速度快、输入阻抗高、驱动电路简单及驱动功率小等优点,又具有GTR的容量大和阻断电压高的优点。

在IGBT的集射极间并接RC吸收网络,降低开关应力,减小IGBT关断产生的尖峰电压;并联二极管DQ实现续流的作用。二次整流采用全波整流电路,通过后续的LC滤波电路,消除高频纹波,减小输出直流电压的低频振荡。LC滤波电路中的电容由多个高耐压、大容量的电容并联组成,以提高电源的可靠性,使输出直流电压更加平稳。2.2 控制电路

控制电路部分实际上是一个实时检测和控制系统,包括对开关电源输出端电压、电流和IGBT温度的检测,对收集信息的分析和运算处理,对电源工作参数的设置和显示等。其控制过程主要是通过采集开关电源的相关参数,送入DSP芯片进行预定的分析和计算,得出相应的控制数据,通过改变输出PWM波的占空比,送到逆变桥开关器件的控制端,从而控制输出电压和电流。

控制电路主要包括DSP控制器最小系统、驱动电路、辅助电源电路、采样电路和保护电路。

(1)DSP控制器最小系统

DSP控制器是其中控制电路的核心采用TMS32OLF2407A DSP芯片,它是美国TEXAS INSTU—MENTS(TI)公司的最新成员。TMS30LF2407A基于C2xLP内核,和以前C2xx系列成员相比,该芯片具有处理性能更好(30MIPS)、外设集成度更高、程序存储器更大、A/D转换速度更快等特点,是电机数字化控制的升级产品,特别适用于电机以及逆变器的控制。DSP控制器最小系统包括时钟电路、复位电路以及键盘显示电路。时钟电路通过15 MHz的外接晶振提供;复位电路直接通过开关按键复位;由4×4的矩阵式键盘和SPRT12864M LCD构成了电源系统的人机交换界面。

(2)驱动放大电路

IGBT的驱动电路采用脉冲变压器和TC4422组成,其电路原理图如图4所示:

图4.IGBT驱动电路原理图

由于TMS320LF2407A的驱动功率较小,不能胜任驱动开关管稳定工作的要求,因此需要加上驱动放大电路,以增大驱动电流功率,提高电源系统的可靠性。如图4所示,采用两片TCA422组成驱动放大电路。

TC4421/4422是Microchip公司生产的9A高速MOsFET/IGBT驱动器,其中TC4421是反向输出,TC4422是同向输出,输出级均为图腾柱结构。

TC4421/4422具有以下特点:

①输出峰值电流大:9 A;

② 电源范围宽:4.5 V~18 V;

③连续输出电流大:最大2 A;

④快速的上升时间和下降时间:30 ns(负载4700pF),180 ns(负载47000 pF);

⑤传输延迟时间短:30 ns(典型);

⑥供电电流小:逻辑“1”输入~200μA(典型),逻辑“0”输入~55 μA(典型);

⑦输出阻抗低:1.4 Ω(典型);

⑧闭锁保护:可承受1.5 A的输出反向电流;

⑨输入端可承受高达5 V的反向电压;

⑩能够由TTL或CMOS电平(3 V~18 V)直接驱动,并且输人端采用有300 mV滞回的施密特触发电路。

当TMS320LF2407A输出的PWM1为高电平,PWM2为低电平时,经过TCA422驱动放大后输出,在脉冲变压器一次侧所流过的电流从PWMA流向PWMB,如图4中箭头所示,电压方向为上正下负。

根据变压器的同名端和接线方式,则开关管Q1的栅极电压为正,Q2的栅极电压为负。因此,此时是驱动QM1导通。反之若是PWM1为高电平,PWM2为低电平时,则是驱动Q2导通。四只二极管DQ1 ~DQ2的作用是消除反电动势对TCA422的影响。

(3)辅助电源电路

本开关电源电路设计过程中所需要的几路工作电源如下:

① TMS320LF2407 DSP所需电源:I/O 电源(3.3 V),PLL(PHSAELOCKED LOOP)电源(3.3 V),FIASH编程电压(5 V),模拟电路电源电压(3.3 V);②TCA422芯片所需电源:电源端电压范围4.5~18 V(选择15 V);③采样电路中所用运算放大器的工作电源为15 V。

因此,整个控制电路需要提供15 V、5 V和3.3 V三种制式的电压。设计中选用深圳安时捷公司的HAw 5-220524 AC/DC模块将220 V、50 Hz的交流电转换成24 V直流电,然后采用三端稳压器7815和7805获得15 V和5 V的电压。TMS320LF2407A所需的3.3 V由5 V通过TPS7333QD电压芯片得到。(4)采样电路

电压采样电路由三端稳压器TL431和光电耦合器PC817之问的配合来构成。电路设计如图5所示,TL431与PC817一次侧的LED串联,TL431阴极流过的电流就是LED的电流。输出电压Ud经分压网络后到参考电压UR与TL431中的2.5 V基准电压Uref进行比较,在阴极上形成误差电压,使LED的工作电流 If发生变化,再通过光耦将变化的电流信号转换为电压信号送人LF2407A的ADCIN00引脚。

图5.电压采样电路原理图

由于TMS320LF2407A的工作电压为3.3 V,因此输入DSP的模拟信号也不能超过3.3 V。为防止输入信号电压过高造成A/D输入通道的硬件损坏,我们对每一路A/D通道设计了保护电路,如图5所示,Cu2,CU3 起滤波作用,可以将系统不需要的高频和低频噪声滤除掉,提高系统信号处理的精度和稳定性。

另外,采用稳压管限制输入电压幅值,同时输入电压通过二极管与3.3 V电源相连,以吸收瞬间的电压尖峰。

当电压超过3.3 V时,二极管导通,电压尖峰的能量被与电源并联的众多滤波电容和去耦电容吸收。并联电阻Ru4的目的是给TL431提供偏置电流,保证TL431至少有1 mA的电流流过。Cu1 和RU3作为反馈网络的补偿元件,用以优化系统的频率特性。

电流采样的原理与电压采样类似,只是在电路中要通过电流传感器将电流信号转换为电压信号,然后再进行采集。

(5)保护电路

为保证系统中功率转换电路及逆变电路能安全可靠工作,TMs320LF2407A提供了PDPINTA,各种故障信号经或门CD4075B综合后,经光电隔离、反相及电平转换后输入到PDPINTA引脚,有任何故障时,CD4075B输出高电平,PDPINTA引脚相应被拉为低电平,此时DSP所有PWM输出管脚全部呈现高阻状态,即封锁PWM输出。整个过程不需要程序干预,由硬件实现。这对实现各种故障信号的快速处理非常有用。在故障发生后,只有在人为干预消除故障,重启系统后才能继续工作。系统的软件实现

为了构建DSP控制器软件框架,使程序易于编写、查错、测试、维护、修改、更新和扩充,在软件设计中采用了模块化设计,将整个软件划分为初始化模块、ADC信号采集模块、PID运算处理模块、PWM波生成模块、液晶显示模块以及按键扫描模块。各模块间的流程如图6所示。

图6.功能模块流程图

3.1 初始化模块

系统初始化子程序是系统上电后首先执行的一段代码,其功能是保证主程序能够按照预定的方式正确执行。系统的初始化包括所有DSP的基本输入输出单元的初始设置、LCD初始化和外扩单元的检测等。

3.2 ADC采样模块

TMS320LF2407A芯片内部集成了10位精度的带内置采样/保持的模数转换模块(ADC)。根据系统的技术要求,10位ADC的精度可以满足电压的分辨率、电流的分辨率的控制要求,因此本设计直接利用DSP芯片内部集成的ADC就可满足控制精度。另外,该10位ADC是高速ADC,最小转换时间可达到500 ns,也满足控制对采样周期要求。

ADC采样模块首先对ADC进行初始化,确定ADC通道的级联方式,采样时间窗口预定标,转换时钟预定标等。然后启动ADC采样,定义三个数组依次存放电压、电流和温度的采样结果,对每一个信号采样8次,经过移位还原后存储到相应的数组中,共得到3组数据。如果预定的ADC中断发生,则转人中断服务程序,对采样的数据进行分析、处理和传输。以电压采样为例,其具体的流程图如图7所示。

图7.程序流程图

3.3 PID运算模块

本系统借助DSP强大的运算功能,通过编程实现了软件PID调节。由于本系统软件中采用的是增量式PID算法,因此需要得到控制量的增量△un,式(3)为增量式PID算法的离散化形式:

unKp(enen1)KienKd[en2en1en2]

(3)

开关电源在进入稳态后,偏差是很小的。如果偏差e在一个很小的范围内波动,控制器对这样微小的偏差计算后,将会输出一个微小的控制量,使输出的控制值在一个很小的范围内,不断改变自己的方向,频繁动作,发生振荡,这既影响输出控制器,也对负载不利。

为了避免控制动作过于频繁,消除由于频繁动作所引起的系统振荡,在PID算法的设计中设定了一个输出允许带eo。当采集到的偏差|en|≤eo时,不改变控制量,使充电过程能够稳定地进行;只有当|en| >eo 时才对输出控制量进行调节。PID控制模块的程序流程如图8所示:

图8.PID运算程序流程图

TMS320LF2407A内部包括两个事件管理器模块EVA和EVB,每个事件管理器模块包括通用定时器GP、比较单元、捕获单元以及正交编码脉冲电路。通过TMS320LF2407A事件管理模块中的比较单元可以产生带死区的PWM波,与PWM 波产生相关的寄存器有:比较寄存器CMPRx、定时器周期寄存器Tx—PR、定时器控制寄存器TxCON、定时器增/减计数器TxCNT、比较控制寄存器COMCONA/B、死区控制寄存器DBTCONA/B。

PWM波的生成需对TMS320LF2407A的事件管理模块中的寄存器进行配置。由于选用的是PWM1/2,因此配置事件管理寄存器组A,根据需要生成带死区PWM波的设置步骤为:

(1)设置并装载比较方式寄存器ACTRA,即设置PWM波的输出方式;

(2)设置T1CON寄存器,设定定时器1工作模式,使能比较操作;

(3)设置并装载定时器1周期寄存器T1PR,即规定PWM 波形的周期;

(4)定义CMPR1寄存器,它决定了输出PWM 波的占空比,CMPR1中的值是通过计算采样值而得到的;

(5)设置比较控制寄存器COMCONA,使能PD—PINTA 中断;

(6)设置并装载死区寄存器DBTCONA,即设置死区时间。

图9.带死区PWM波的生成原理

3.5 键盘扫描及LCD显示模块

按键扫描执行模块的作用是判断用户的输入,对不同的输入做出相应的响应。本开关电源设计采用16个压电式按键组成的矩阵式键盘构成系统的输入界面。16个按键的矩阵式键盘需要DSP的8个I/O口,这里选用IOPA0~IOPA3作为行线,IOPF0~IOPF3作为列线。由于TMS320LF2407A都是复用的I/O口,因此需要对MCRA和MCRC寄存器进行设置使上述8个I/O口作为一般I/O端口使用。按键扫描执行模块采用的是中断扫描的方式,只有在键盘有键按下时才会通过外部引脚产生中断申请,DSP相应中断,进人中断服务程序进行键盘扫描并作相应的处理。

LCD显示模块需要DSP提供11个I/O口进行控制,包括8位数据线和3位控制线,数据线选用IOPB0~IOPB7,控制线选用IOPFO IOPF2,通过对PBDATDIR和PFDATDIR寄存器的设置实现DSP与LCD的数据传输,实时显示开关电源的运行状态。结论

本文介绍的基于DSP的大功率高频开关电源,充分发挥了DSP强大功能,可以对开关电源进行多方面控制,并且能够简化器件,降低成本,减少功耗,提高设备的可靠性。

参考文献

DSP原理及应用复习总结 篇5

中央处理器的体系架构分为:冯·诺依曼结构和哈佛结构 冯·诺依曼结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。可以减轻程序运行时的访存瓶颈。

基础特性分类:静态DSP芯片、一致性的DSP芯片。数据格式分类:定点DSP芯片、浮点DSP芯片。用途分类:通用型DSP芯片、专用型DSP芯片。处理数据位数分类:16/32位 TMS320F2812芯片封装方式两类:179引脚的GHH球形网格阵列BGA封装、176引脚的LQFP封装。

DSP内部总线分为:地址总线和数据总线。注意:DSP外部总线:即DSP芯片与外扩存储器的总线接口,包括19根地址线和16根数据线。

时序寄存器XTIMINGx主要用于设置读写时序参数;配置寄存器XINTCNF2主要完成选择是种,设置输入引脚状态及写缓冲器深度;控制寄存器XBANK用于设置可增加周期的特定区,以及设置增加的周期数。

命令文件CMD是DSP运行程序必不可少的文件,用于指定DSP存储器分配。由两个伪指令构成,即MEMORY(定义目标存储器的配置)和SECTIONS(规定程序中各个段及其在存储器中的位置)。

28X系列DSP时钟和系统控制电路包括:振荡器、锁相环、看门狗和工作模式选择等

锁相环和振荡器的作用是为DSP芯片中的CPU及相关外设提供可编程的时钟芯片内部的外设分为告诉我社和低速外设,可以设置不同的工作频率看门狗模块用于监控程序的运行状态,它是提高系统可靠性的重要环节。

28xDSP片上晶振电路模块允许采用内部振荡器或外部时钟源为CPU内核提供时钟

DSP处理器内核有16根中断线,包括和NMI两个不可屏蔽中断和INT1至INT14等14个可屏蔽中断(均为低电平有效)。PIE中断系统共分12组,每组有8个中断复用1个CPU中断。采用三级中断机制:外设级、PIE级、CPU级

PIE中断工作原理:当某外设产生中断,IF被置1,IE也被置1,发送到PIE控制器,中断标志PIEIFRx.v被置1,中断请求发送到CPU,CPU级IFR中对应INTx被置1,IER和INTM被使能,CPU响应中断请求。

CPU定时器用户只能用T0,通用定时器是EV中的都可以用;CPU定时器只有周期中断,而EV中的通用定时器可以有上溢中断、下溢中断、周期中断、比较中断四种。

功能控制寄存器:GPxMUX、GPxDIT、GPxQUAL。

数据寄存器:GPxSET寄存器设置每个引脚为高电平;GPxCLEAR清除每个引脚信号;GPxTOGGLE反转触发每个引脚信号;GPxDAT读写每个引脚信号

事件管理器包括:通用定时器、圈比较PWM单元、捕获单元以及正交编码脉冲电路QEP 全比较PWM单元产生脉宽调制信号可以控制直流电机或步进电机的转速;捕获单元对光电编码器的输出信号进行测量可以计算电机的转速;正交编码脉冲电路根据增量编码器信号计算电机的旋转方向等信息。

通用定时器的寄存器:控制寄存器(决定通用定时器的操作模式,例如选择计数模式、时钟、预分频系数、比较寄存器的重装载条件)、全局控制寄存器(规定了通用定时器针对不同时间采取的动作、读取计数方向、定义ADC的启动信号)、比较寄存器(与通用定时器的计数值不断比较,匹配时,相应引脚跳变,请求中断)和周期寄存器(决定定时器的计数周期)是双缓冲的

通用定时器的中断:上溢中断、下溢中断、比较匹配、周期匹配

每个通用定时器都支持4种计数模式:停止/保持模式、连续递增计数模式、定向递增/递减计数模式和连续递增/递减计数模式。

EV模块各有3个全比较器,每个比较器对应两路PWM输出

每个比较单元包括3个比较寄存器CMPRX,各带一个映像寄存器;1个比较控制寄存器;1个动作控制寄存器;6路带三态输出的PWM引脚以及控制和中断逻辑。

较单元的输入包括来自控制寄存器的控制信号,通用定时器1的时钟信号及下溢信号、周期匹配信号和复位信号。比较单元输出信号是一个比较匹配信号,如果比较操作被使能的话,比价匹配信号将中断标志置位,并在对应的PWM引脚上产生跳变。比较单元的工作过程:通用定时器1的计数值不断地与比较寄存器的值进行比较,当发生匹配时,该比较单元的两个输出引脚发生跳变;ACTRA寄存器定义在发生比较匹配时每个输出引脚为高有效电平或低有效电平。

PWM单元对称/不对称波形发生器、可编程死区单元DBU、PWM输出逻辑和空间向量SVPWM状态机组成。ADC模块的特点:12位模数转换内核,内置双采样/保持器;顺序采样模式或并行采样模式;模拟输入电压范围0-3v;快速的转换时间,最高采样率12.5MSPS;16通道模拟信号输入; 并行采样:AdcRegs.ADCTRL3.bit.SMODE_SEL=1;顺序采样为0 双排序AdcTegs.ADCTRL1.bit.SEQ_CASC=0;级联排序为1 AdcRegs.ADCMAXCONV.all=0x0033并双;7并级;77顺双;F顺级 AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0 ADC工作模式:连续模式和启动/停止模式。ADC电源:上电、掉电、关闭模式。

上电顺序:给参考电源上电、给adc内部参考电源电路供电、adc模块完全供电后,等20μs才能执行第一次模数转换。

28x DSP的输入信号电压不能高于3.3V,模拟信号需经过调理后进入DSP的AD转换输入端口,未使用的模数转换器输入引脚,都要连接模拟地,否则会带来噪声信号

电源管理电路设计:多电源正确连接;不允许有电源引脚悬空;减少噪音和互相干扰,数电和模电单独供电,接地也分开,最终通过一个磁珠在单点连接

DSP编程语言特点:c语言:具有良好可读性和可移植性,开发率高;汇编语言:高的运行效率,常用语时间要求比较苛刻的地方,比如终端服务子程序。

头文件的作用:是c语言不可缺少的部分,是用户程序和函数库之间的纽带;头文件使用:用户程序只要按照头文件中的接口声明来调用库功能,编译器就会从库中提取相应的代码 C语言程序框架包含有寄存器结构定义文件、外设头文件、器件的宏与类型定义等,通过使用头外设文件,可以容易控制片内外设。

DSP程序包括:头文件包含、函数声明、宏定义、主函数main()和中断服务子程序

主函数的编程步骤:1初始换系统控制2清除所有中断并初始化PIE向量表3初始化所有用到的外设4开中断5编写用户代码 #include “DSP281x_Device.h”

#include “DSP281x_Examples.h”

interrupt void cpu_timer0_isr(void); void main(void)// {

InitSysCtrl(); DINT;

InitPieCtrl();

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable(); EALLOW;

PieVectTable.TINT0 = &cpu_timer0_isr;

EDIS;InitGpio();InitCpuTimers();

ConfigCpuTimer(&CpuTimer0,100,1000000);

StartCpuTimer0();IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

EINT;

ERTM; …… }

interrupt void cpu_timer0_isr(void)

{

CpuTimer0.InterruptCount++;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

上一篇:袁腾飞经典语录下一篇:祝福同事高升一段话