DSP实验三

上传人:c** 文档编号:291140999 上传时间:2022-05-11 格式:DOCX 页数:7 大小:19.22KB
返回 下载 相关 举报
DSP实验三_第1页
第1页 / 共7页
DSP实验三_第2页
第2页 / 共7页
DSP实验三_第3页
第3页 / 共7页
DSP实验三_第4页
第4页 / 共7页
DSP实验三_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《DSP实验三》由会员分享,可在线阅读,更多相关《DSP实验三(7页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑DSP实验三 一、测验目的 1、 通过测验熟谙LF2407A的定时器; 2、 掌管LF2407A定时器的操纵方法; 3、 掌管LF2407A的中断布局和对中断的处理流程; 4、学会汇编语言中断程序设计,以及运用中断程序操纵程序流程。 二、测验主要仪器与设备 计算机,ICETEK-LF2407-EDU测验箱 三、测验原理 通用定时器介绍及其操纵方法 事情管理器模块(EV) TMS320LF2407A DSP片内包括两个事情管理模块EVA和EVB,每个事情管理器模块包括通用定时器(GP)、对比单元以及正交编码脉冲电路。每个事情管理器都包括两个通用定时器,用以完成

2、计数、同步、定时启动ADC、定时中断等功能。 通用定时器(GP) *每个通用定时器包括: -一个16位的定时器增/减计数的计数器TxCNT,可读写; -一个16位的定时器对比寄放器(双缓冲,带影子寄放器)TxCMP,可读写; -一个16位的定时器周期寄放器(双缓冲,带影子寄放器)TxPR,可读写; -一个的定时器周期寄放器TxCON,可读写; -可选择的内部或外部输入时钟; -用于内部或外部时钟输入的课编程的预定标器(Prescaler); -操纵和中断规律,用于4个可屏蔽中断一下溢、溢出、定时器对比和周期中断; -可选择方向的输入引脚TDIRx,用于双向计数方式时选择向上或向下计数。 *通用

3、定时器之间可以彼此独立工作或相互同步工作,完成繁杂的任务。 *通用定时器在中断标志寄放器EVAIFRA,EVAIFRB,EVBIFRA和EVBIFRB中有12哥中断标志位。每个通用定时器可根据以下事情产生4个中断: -上溢TxOFINF(x=1,2,3或4); -下溢TxUFINF(x=1,2,3或4); -对比匹配TxCINT(x=1,2,3或4); -周期匹配TxPINT(x=1,2,3或4); *每个通用定时器有4种可选择的操作模式: -中断/保持模式; -连续增计数模式; -定向增/减计数模式; -连续增/减计数模式。 TMS320LF240x中断布局 利用CPU支持的6个可屏蔽中断,

4、采用集中化的中断扩展设计来得志大量的外设中断需求。LF240x内核供给一个不成屏蔽的中断NMI和6个按优先级获得服务的可屏蔽中断INT1至 INT6。而这6个中断级的每一个都可被好多外设中断苦求共享。通过中断苦求系统中的一个两级中断来扩展系统可响应的中断个数。 为了让CPU能区分引起中断的事情,在每个外设中断苦求有效是都会产生一个唯一的外设中断气力,保存于外设中断向量寄放器(PIVR)中。实际上有两个中断向量表,CPU的向量表用于得到一级通用中断服务子程序(GISR);外设向量表指定外设中断子程序(SISR)。GISR程序根据PIVR中的外设中断向量取值抉择执行哪个SISR。 中断响应过程 外

5、设事情要引起CPU中断,务必保证:外设事情的中断使能为被使能,CPU内核级的6个可疲敝中断中,相应中断也被使能。 在外设事情发生时,首先将其在外设中断操纵器中的标志位置1,从而引起CPU内核的INT-INT6中的一个产生中断。中断服务过程中,其他可屏蔽中断将会自动被屏蔽,直到中断返回。 在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1会引起INT2中断),在相应GISR字程序中,取出PIVR的值,根据其值在转向相应的SISR;SISR程序在举行服务操作之后,应将本外设的中断标志位领会以便能持续中断,然

6、后返回。 4、中断程序设计 -程序中应包括两个中断向量表,LF2407A默认向量表从程序区0地址开头存放。 -第一个向量表包含GISR服务程序入口,其次个向量表可存储在程序区其他位置供GISR程序调用; -向量表中每项为两个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址;第一个向量表的首相为复位向量,即CPU复位操作完成后自动进入执行的程序入口; -程序中包含相应GISR服务程序,和SISR服务程序,将其入口地址参与相应中断向量表中。 -GISR服务程序进入后,首先取得PIVR的值,据此计算应调用哪一个外设中断向量。 -SISR服务程序在服务操作完成后,除掉相应中断标志,返回,完

7、成一次中断服务。 5、测验程序分析 本测验设计的程序是在上一个测验根基上修改得来,由于上一测验操纵指示灯闪烁的延时操纵是用循环计算方法得到的,延时不精确也不平匀,采用中断方式可以实现指示灯的定时闪烁,时间更加切实。 对于定时器的周期寄放器为计数40000次产生一个中断由于DSP工作在40MHz主频,正好是1ms中断一次,所以在中断服务程序中计算中断500次时变更指示灯状态,实现指示灯亮0.5秒在灭0.5秒,即每秒闪烁一次。 测验程序的工程中包含了两种源代码,主程序采用C语言编制利于操纵,中断向量表在veotor.asm汇编语言文件中,利于直观的操纵存储区调配。在工程中只需将它们添加进来即可,编

8、译系统会自动识别分别处理完成整合工作。 测验程序的C语言主程序中包含了内嵌汇编语句,供给一种在需要更直接操纵DSP状态的方法,同样的方法也能提高C语言片面程序的计算效率。 源程序框图如下所示: 主程序框图: 定时器中断服务程序框图: 源程序如下所示: #include #define T1MS 0x9c3f /* 9c3fH=40000-1 */ ioport unsigned int port8000; ioport unsigned int port8005; ioport unsigned int port8007; void interrupt gptime1(void); /* 中断

9、服务程序,定时器计数T1MS次时中断调用 */ void gp_init(void); /* 定时器初始化 */ unsigned int uWork,nCount; int * pf; main() int i; *WDCR=0x6f; *WDKEY=0x5555; *WDKEY=0xaaaa; /* 关闭看门狗中断 */ *SCSR1=0x81fe; /* 设置DSP运行频率40m */ (*MCRB)=0; asm( /* 关中断,举行关键设置时不允许发生中断,以免干扰 */ uWork=(*MCRC); /* 将PWM12/IOPE6设置成通用I/O口,以操纵测验箱上指示灯 */ uW

10、ork (*MCRC)=uWork; gp_init(); /* 设置定时器 */ *IMR=0x2; /* 使能定时器中断(INT2) */ *IFR=0xffff; /* 除掉中断标志 */ port8000=0; / 初始化ICETEK-CTR port8000=0x80; port8000=0; port8000=0x82; port8007=0; / 关闭东西方向的交通灯 port8007=0x40; / 关闭南北方向的交通灯 asm( /* 开中断 */ for(;); / 中断服务程序:响应INT2中断 void interrupt gptime1(void) /* 中断服务程序

11、定义,须使用interrupt声 */ uWork=(*PIVR); /* 读外设中断向量寄放器*/ switch(uWork) case 0x27: /* T1PINT,0x27为定时器1的周期中断的向量值 */ (*EVAIFRA)=0x80; /* 除掉中断标志T1PINT */ nCount+; if ( nCount=500 ) /* 计数500此=500ms=0.5秒*/ uWork=(*PEDATDIR); /* 设置指示灯状态翻转一次 */ uWork|=0x4000; uWork=0x0040; (*PEDATDIR)=uWork; nCount=0; break; void

12、 gp_init(void) *EVAIMRA = 0x80; /* 使能T1PINT即通用定时器1周期中断 */ *EVAIFRA = 0xffff; /* 除掉中断标志 */ *GPTCONA = 0x0000; *T1PR = T1MS; /* 周期寄放器=40000 */ *T1CNT = 0; /* 计数初值=0 */ *T1CON = 0x1040; /* 启动计数器 */ 四、测验内容及步骤 1、测验打定 (1) 连接设备 关闭计算机和测验箱电源; 检查ICETEK-LF2407-A板上JP6的位置,应连接在1-2位置(靠近DSP芯片端),即设置DSP工作在MP方式; 关闭测验箱

13、上的三个开关。 (2)开启设备: 开启计算机电源 开启测验箱电源开关,开启ICETEK-LF2407-A板上电源开关,留神板上指示灯DS1灭、DS2和DS3亮;开启操纵模块的电源开关; 如使用USB型仿真器用附带的USB电缆连接计算机和仿真器相应接口,留神仿真器上两个指示灯均亮。 (3)设置Code Composer Studio为Emulator方式: 参见“Code Composer Studio入门测验”之四.3。 (4)启动Code Composer Studio 双击桌面上“CCSC2000”图标,启动Code Composer Studio2.2 2、开启工程文件,欣赏程序 中断服

14、务程序:框图:使能系统的定时器周期中断开启菜单“Project” 的OPEN项;选择D:2407EDULabLab7-Timer目次中的“Timer.pjt”。 在工程欣赏器中,双击led.c,激活led.c文件,欣赏该文件的内容,理解各语句作用。开启led.cmd, 欣赏并理解各语句作用,对照C源程序学习中断向量表的写法。 3、编译工程 单击“Project”菜单,“Rebuild all”项,编译工程中的文件,生成Timer.out文件。 4、下载程序 单击“File”菜单,“Load program”项,选D:2407EDULabLab67-Timer目次中的Timer.out文件,通过仿真器将其下载到2407A DSP上。 5、运行程序查看结果 单击“Debug”菜单,“RUN”项,运行程序。 .查看测验箱操纵模块上交通灯北1红灯闪烁处境。 .单击“Debug”菜单,“Halt”项,中断程序运行。 6、试修改程序,重复步骤3-5,使指示灯约1秒闪烁两次、三次。四次。 五、斟酌题 理应如何修改程序,使指示灯约1秒闪烁两次、三次、四次? 六、测验总结 7

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号