《实验指导.pdf》由会员分享,可在线阅读,更多相关《实验指导.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一:扩展实验一:扩展 RAMRAM 及及 FLASHFLASH 读写实验读写实验一、实验目的一、实验目的1.理解 F28335 在硬件上如何扩展 RAM 内存。2.理解 F28335 在扩展 RAM 存储器上的编程。二、实验设备二、实验设备1装有 CCS5.2 的计算机一台。2ZQ28335 开发板、XDS100V2 USB 仿真器、USB 接口线及 5V 电源。三、实验原理三、实验原理F28335 的片上存储器和片外存储器采用统一编址方式。当片内RAM 存储器不够用时,可外接芯片扩展。扩展存储器只能在 0 x00 40000 x00 5000 的 XINF 区域 0、0 x10 0000
2、0 x200000 的 XINF 区域 6 和 0 x20 00000 x70 0000的 XINF 区域 7,如图 1 所示。1外扩 RAM 电路选用的 RAM 型号为 IS61LV25616AL,256K16bit 大小。这里使用A17A0,共 18 根地址线,最大为256K;数据线为D15D0。片选信号CE 接 F28335 的 XZCS7 引脚,写WE由 XWE 提供,RD(OE,Output Enable)信号均 XRD 提供。有硬件电路可知,外扩的 RAM地址范围为 0 x20 00000 x23 FFFF。由于没有使用 A19A18 地址线,在仿真时,凡低 18 位地址相同的单元
3、,读出的内容都是同一个单元内容,如 0 x2400000 x27FFFF,0 x2800000 x2BFFFF和 0 x2C00000 x2FFFFF上读出的内容与 0 x2000000 x23FFF的内容相同。2外扩 FLASH 电路FLASH 存储器掉电后数据不会丢失,用于存放程序和需要保存的数据。本实验板选用的 FLASH 型号为 SST39VF800,512K16bit 大小。这里使用 A18A0,共 19 根地址线,最大为 512K;数据线为 D15D0。片选信号 CE 接 F28335 的 XZCS6 引脚,写 WE 由 XWE提供,RD(OE,Output Enable)信号均X
4、RD 提供。有硬件电路可知,外扩的FLASH 地址范围为 0 x10 00000 x17 FFFF。读FLASH的方法与普通的存储器没有区别,但写数据到FLASH及擦除等操作,则需要特定的命令,如表1所示。图 1 F28335 内存映射图 2 F28335 在区域 7 外接 RAM 芯片(仅使用 A17A0,256K)表1 SST39VF800型FLASH存储器命令表图 3 F28335 在区域 6 外接 FLASH 芯片(仅使用 A18A0,512K)例如:一个字到FLASH(Word Program),需要4个周期。如将地址为DSPRamStart的随机存储器单元内容复制到FLASH的Fl
5、ashStart单元,编程如下:*(FlashStart+0 x5555)=0 xAA;*(FlashStart+0 x2AAA)=0 x55;*(FlashStart+0 x5555)=0 xA0;*(FlashStart)=*(DSPRamStart);3实验功能分析在main_EXRAM.C中,读写外部 RAM 与读写普通的存储器方法相同。在main_NOR_FLASH.C中读 FLASH 与普通存储器没有区别,但写 FLASH 等操作需要发送相应的命名。为叙述方便,将RAML7前半部分存储器简称为A,后半部分简称为B,FLASH存储器简称为 C,外部 RAM 存储器简称为 D。主函数的
6、主要功能为(1)初始化外部接口为16 位的总线接口(InitXintf());(2)A 初始化为 00 x3FF(InitRam(0));(3)擦除 C(ChipErase();execute_150ms);(4)将 A 数据复制到 C(写 FLASH)(FlashWrite(0,0,0 x400));(5)将 B 清零(EraseRam(0 x0));(6)将 C 数据复制到 B(读 FLASH)(FlashRead(0,0,0 x400));0 xF0000 x10 0000A(RAM L7)C(FLASH)0 xF800B(RAM L7)0 x20 0000D(EXRAM图4 EXRAM
7、及FLASH存储器分布简图四、源程序分析四、源程序分析1延迟函数原型:void delay_loop(Uint32 x)void delay_loop(Uint32 x)2擦除整个 FLASH 数据函数原型:Uint16ChipErase(void)Uint16ChipErase(void)/FLASH 芯片地址接在 ZONE6 段,地址从 0 x100000 开始/FlashStart=0 x100000/擦除整个 FLASH,擦除后,每个单元均为0 xFFFF/函数返回 0:擦除完成(EraseOK=0)/函数返回 1:擦除超时退出(TimeOutErr=1)/函数返回 3:擦除错误(Er
8、aseErr=3)3将 RAML7 的数据写到 FLASH 函数原型:Uint16Uint16FlashWrite(Uint32FlashWrite(Uint32RamStart,Uint32RamStart,Uint32RomStart,RomStart,Uint16Uint16 Length)Length)/FlashStart=0 x100000/DSPRamStart=0 x00F000/RAML7 起始偏移地址:RamStart/FLASH 起始偏移地址:RomStart/复制数据个数:Length/函数返回 0:全部写到 FLASH 完成(WriteOK=0)/函数返回 1:擦除超
9、时退出(TimeOutErr=1)/函数返回 2:写数据错误(VerifyErr=2)4读 FLASH 的数据,复制到 RAML7 后半部分函数原型:voidvoidFlashRead(Uint32 RamStart,Uint32FlashRead(Uint32 RamStart,Uint32RomStart,RomStart,Uint16Uint16Length)Length)/FlashStart=0 x100000/DSPRamStart2=0 x00F800/FLASH 起始偏移地址:RomStart/RAML7 起始偏移地址:RamStart/复制数据个数:Length5初始化 RA
10、ML7 前半部分寄存器函数原型:voidvoidInitRam(Uint16InitRam(Uint16Start)Start)/DSPRamStart=0 x00F000/从 RAML7 前半部分的偏地址:start,单元数为 0 x400/初始化值为 00 x3FF,单元个数为 0 x400。6擦除 RAML7 的后半部分数据函数原型:voidvoidEraseRam(Uint16 Start)EraseRam(Uint16 Start)/DSPRamStart2=0 x00F800/从 RAML7 后半部分的偏地址:start,单元数为 0 x400/初始化值:全 0,单元个数为 0 x
11、400。7擦除 RAML7 的后半部分数据函数原型:voidvoidRamRead(Uint16RamRead(Uint16 Start)Start)/将 RAML7 的前半部分数据复制到 RAML7 的后半部分函数/DSPRamStart=0 x00F000/DSPRamStart2=0 x00F800(RAML7 的后半部分)/将 RAML7 的前半部分偏移地址为 start,/复制单元数为 0 x4008 main_NOR_FLASH.C中的主函数void main(void)InitSysCtrl();DINT;InitPieCtrl();IER=0 x0000;IFR=0 x0000
12、;InitPieVectTable();InitXintf();/初始化 16 位数据的外设总线InitRam(0);ChipErase();execute_150ms;FlashWrite(0,0,0 x400);EraseRam(0 x0);/RAML7 后半部分从 0 xF800 开始FlashRead(0,0,0 x400);/RAML7 后半部分从 0 xF800 开始五、实验预习五、实验预习完成预习报告。六、实验过程六、实验过程(一)新建实验项目1点击CCS 软件的 Project 菜单下的 New CCS Project 选项,如图5 所示,新建一个名为“ZQ28335_ExRA
13、Mand_NOR_FLASH”的空项目,有关参数设置如图 6 所示。点击 EmptyProject 和 Finish 完成项目的新建。图 5 新建一个项目图 6 项目参数设置2.将参考项目文件夹中的00ic_EXRAM.c 文件重命名为“main_EXRAM.c”后,复制到这个项目文件夹中。00ic_NOR_FLASH.c文件重命名为“main_NOR_FLASH.c”后,也复制到这个项目文件夹中。并删除“main.c”文件。将参考项目文件夹“DSP2833x_common”和“DSP2833x_headers”也复制到这个项目文件夹中,并禁用一些不需要的文件。注:DSP2833x_commo
14、n 中已删去 CMD 文件夹。DSP2833x_headers 已删去 CMD 文件夹中的“DSP2833x_Headers_BIOS.cmd”。4右击项目名称,选择Properties(属性),如图 7 所示,点击 Include Options 选项,添加 DSP2833x_common和 DSP2833x_headers 中的头文件和源文件途径。如图4 所示。图 7 添加文件途径(二)扩展 RAM 实验1禁用“main_NOR_FLASH.c”文件,方法是:在“main_NOR_FLASH.c”文件上右击选择界面上,点击和下的选项。如图 8 所示。在随后出现的按钮即可。这时“main_N
15、OR_FLASH.c”文件不参与编译。图 8 禁用文件选项2点击,编译、下载程序,当程序运行到下图OK 地方停止表示外部 SRAM 读写数据正常,否则停止在 error 处。图 9 执行 main_EXRAM 停止位置3此时点击View-Memory,打开内存观察窗口,输入外扩RAM 起始地址 0 x20 0000,按回车键,即可看到从 0 x0000 依次递增的数据。图 10 执行 main_EXRAM结果数据(三)扩展 FLASH 实验1禁用“main_EXRAM.c”文件,方法是同禁用“main_NOR_FLASH.c”文件相同。2激活“main_NOR_FLASH.c”。方法是:在“m
16、ain_NOR_FLASH.c”文件上右击选择下的和左侧的两个小沟,点击OK 即可。选项。在随后出现的界面上,去掉3点击,编译、下载程序,在 InitRam(0)这一行设置一个断点,点击运行程序到此。点击(单步执行),执行下面一行代码:InitRam(0);打开内存观察窗口,输入RAML7起始地址0 xF000,按回车键,看数据是否从0 x0000依次递增。图 11 执行 InitRam(0)结果数据4点击,执行下面两行代码:ChipErase();execute_150ms;打开内存观察窗口,输入FLASH起始地址0 x10 0000,按回车键,看FLASH擦除后的数据是否都是0 xFFFF
17、。图 12 执行 ChipErase()结果数据5点击,执行下面一行代码:FlashWrite(0,0,0 x400);打开内存观察窗口,输入FLASH起始地址0 x10 0000,按回车键,看写到FLASH的数据是否从0 x0000依次递增。若是则说明写FLASH数据完成。图 13 执行 FlashWrite(0,0,0 x400)结果数据6点击,执行下面一行代码:EraseRam(0 x0);/RAML7后半部分从0 xF800开始打开内存观察窗口,输入RAML7后半部分起始地址0 xF800,按回车键,看其数据是否都是0。若是则说明写清除RAML7后半部分数据完成。图 14 执行 Era
18、seRam(0 x0)结果数据7点击,执行下面一行代码:FlashRead(0,0,0 x400);打开内存观察窗口,输入RAML7后半部分起始地址0 xF800,按回车键,看其数据是否从0 x0000依次递增,若是则说明读FLASH数据正常,若否,说明函数有问题。图 15 执行 FlashRead(0,0,0 x400)结果数据七、课堂编程作业七、课堂编程作业先备份程序,然后修改代码。依次完成以下操作:1、将数值 0 x1234 写入到存储器区间 0 xF0000 xF3FF中;2、将存储器区间 0 xF0000 xF3FF中的值对应地复制到存储器区间0 x1000000 x1003FF中;
19、3、将 存 储 器 区 间0 x1000000 x1003FF 中 的 值 对 应 地 复 制 到 存 储 器 区 间0 x2000000 x2003FF中;4、将存储器区间 0 x2000000 x2003FF中的值对应地复制到存储器区间0 xF0000 xF3FF中;查看存储器区间 0 xF0000 xF3FF的数值情况。八、完成实验报告八、完成实验报告实验二:键盘操作实验实验二:键盘操作实验一、实验目的一、实验目的1.理解 3*3 矩阵键盘的工作原理和扫描确认方式。2.掌握 F28335 中 GPIO 相关寄存器的功能配置。二、实验设备二、实验设备1装有 CCS5.2 的计算机一台。2Z
20、Q28335 开发板、XDS100V2 USB 仿真器、USB 接口线及 5V 电源。三、实验原理三、实验原理13*3 矩阵键盘的工作原理和扫描确认方式当键盘中按键数量较多时,为了减少对I/O 口的占用,通常将按键排列成矩阵形式,也称为行列键盘。矩阵式键盘接口如图1 所示,它由行线和列线组成,按键位于行、列的交叉点上。当按键按下时,其交点的行线和列线接通,相应的行线或列线的电平发生变化,DSP通过检测行或列线上的电平变化可以确定哪个按键被按下。图 1 F28335 键盘接口图在矩阵键盘的软件接口程序中,经常使用的按键识别方法有行列扫描法和线反转法,本项目采用列扫描法对矩阵键盘进行判别。图1 中
21、 GPIO53、GPIO52、GPIO51 为 3 根行线,作为键盘的输入口(工作于输入方式);GPIO50、GPIO49、GPIO48 为 3 根列线,作为输出口(工作于输出方式),由 DSP 控制其输出的电平值。按键识别的过程如下。1)将全部列线 GPIO50、GPIO49、GPIO48 置低电平输出,然后读GPIO53、GPIO52、GPIO51 三根输入行线中有无低电平出现。只要有低电平出现,则说明有按键按下(实际编程时,还要考虑按键的消抖);如果读到的电平都是高电平,则表示无按键按下。2)在确认某行有按键按下后,需要确定具体是哪一列的按键按下。其思路是:依次将列线置为高电平,并检测行
22、线的输入,如果行线的电平值由低电平变为高电平,则该列对应的按键处于闭合状态。由此,DSP 对矩阵键盘的按键识别是,采用扫描方式控制列线的输出信号和检测行线输入的信号相配合实现。3)矩阵按键的识别仅仅是确认和定位了行和列的交叉点上的按键,接着还要考虑键盘的编码,也就是对各个按键进行编号。在软件中常采用计算的方法或查表的方法对按键进行具体的定义和编号,本项目采用查表的方法。在 DSP 系统中,键盘扫描只是DSP 的工作内容之一。DSP 除了要检测键盘和处理键盘操作外,还要进行其他事务处理,因此,DSP 如何响应键盘的输入需要在实际系统程序设计时根据需要考虑。通常,可以把完成键盘扫描和处理的程序编写
23、为一个专用子程序,DSP调用该子程序对键盘进行扫描和处理的方式有三种:程序控制扫描、定时器扫描和中断扫描。1)程序控制扫描方式。在主控程序中的适当位置调用键盘扫描程序,对键盘进行读取和处理。2)定时扫描方式在定时扫描方式中,要使用DSP 的一个定时器,使其产生一定时间(如10ms)的定时中断,DSP 响应定时中断,执行键盘扫描。当在连续两次中断中都读到相同的按键按下(间隔 10ms 作为消抖处理),DSP 才执行相应的按键处理程序中断方式。3)中断方式键盘的硬件电路需要增加一个按键产生中断信号的输入线,当键盘有按键按下时,键盘硬件电路产生一个外部的中断信号,DSP 响应外部中断进行键盘处理。本
24、项目采用程序控制扫描方式完成按键处理。2F28335 中 GPIO 相关寄存器的功能配置GPIO 多路开关寄存器用于通用的GPIO 复用引脚的选择,通过寄存器可以把这些引脚设置成数字 I/O 或外设 I/O 工作模式。如果是数字 I/O 模式,可以用方向控制寄存器GPxDIR来配置引脚的信号传输方向。1)GPxDAT寄存器(数据寄存器)每个 I/O 口都有一个数据寄存器,数据寄存器的每一个位对应一个GPIO 引脚。向GPxDAT寄存器的写操作可以清除或设置相应的输出锁定,如果引脚被使能并作为 GPIO 输出引脚可以用于传输低电平信号,如果引脚没有被配置为GPIO 输出引脚则不能用于传输信息。只
25、有引脚被配置为GPIO 输出功能后,才能将被锁定的值传送到引脚。2)GPxSET 寄存器(置位寄存器)置位寄存器用于在不影响其他引脚的情况下将指定GPIO 引脚置成高电平。每一个I/O口都有一个置位寄存器,且每一位都对应一个GPIO 引脚。置位寄存器的任何读操作均返回0。如果相应的引脚被配置为输出,那么向置位寄存器的该位写1 会将相应的引脚置为高电平。向置位寄存器中任何位写0 将没有影响。3)GPxCLEAR 寄存器(清除寄存器)清除寄存器用于在不影响其他引脚的情况下将指定GPIO 引脚置成低电平。每一个I/O口都有一个清除寄存器,且每一位都对应一个GPIO 引脚。清除寄存器的任何读操作均返回
26、0。如果相应的引脚被配置为输出,那么向清除寄存器的该位写1 会将相应的引脚置为低电平。向清除寄存器中任何位写0 将没有影响。3实验功能分析主函数的主要功能为(1)按键 I/O 初始化(Init_KeyGpio());(2)检测行线输入信号(Read_KX(1);Read_KX(2);Read_KX(3););(3)扫描方式控制列线输出信号(Read_KY(1);Read_KY(2);Read_KY(3););四、源程序分析四、源程序分析1延迟函数原型:void delay(Uint32 t);2初始化按键 IO 函数原型:void Init_KeyGpio(void);3.3 列全部输出低电平
27、函数原型:void ResetAllKY(void);4.读取 3 行 IO 电平状态原型:void KX_AllStatus(void);5.读取按键所在行原型:void Read_KX(Uint16 x);6.设置任意列输出高电平原型:void Set_KY(Uint16 x);7.设置任意列输出低电平原型:void Rst_KY(Uint16 x);8.读取按键所在列原型:void Read_KY(Uint16 x);9.获取按键值 Key原型:void GetKey(void);五、实验预习五、实验预习完成预习报告。六、实验过程六、实验过程(一)新建实验项目1点击CCS 软件的Proj
28、ect 菜单下的New CCS Project 选项,新建一个名为“ZQ28335_xxx”的空项目。点击 Empty Project 和 Finish 完成项目的新建。2.将参考项目文件夹中的00ic_3x3_KEY.c文件重命名为“main_3x3_KEY.c”后,复制到这个项目文件夹中。并删除“main.c”文件。将参考项目文件夹“DSP2833x_common”和“DSP2833x_headers”也复制到这个项目文件夹中,并禁用一些不需要的文件。注:DSP2833x_common 中已删去 CMD 文件夹。DSP2833x_headers 已删去 CMD 文件夹中的“DSP2833x
29、_Headers_BIOS.cmd”。3右击项目名称,选择 Properties(属性),点击 Include Options 选项,添加DSP2833x_common 和 DSP2833x_headers 中的头文件和源文件途径。4将程序中的 Key 添加到 Watch Window窗口。5点击,编译、下载,运行程序。按下板子上 S1-S9 任意一个按键,然后暂停程序观察和记录 Key 的值。七、课堂编程作业七、课堂编程作业先备份程序,然后修改程序。完成以下功能:按下按键 S1S8 分别点亮发光二极管 D10D17;按下 S9 键,将发光二极管 D10D17全部熄灭。八、完成实验报告。八、完
30、成实验报告。实验三:外中断实验实验三:外中断实验一、实验目的一、实验目的1.理解 F28335 的中断系统。2.掌握 F28335 中断的编程。二、实验设备二、实验设备1装有 CCS5.2 的计算机一台。2ZQ28335 开发板、XDS100V2 USB 仿真器、USB 接口线及 5V 电源。三、实验原理三、实验原理中断系统在 DSP 中的地位非常重要,凡是事件驱动型的数字处理系统里面都应有中断系统。中断方式是一种灵活处理时间的方式,中断的合理安排可以提高 DSP 整个系统事件执行的效率。中断是硬件和软件驱动事件,它使得 CPU 停止当前的主程序,并转而去执行一个中断服务子程序。中断系统如图1
31、 所示。执行主程序有一个中断请求暂停主程序,执行中断服务子程序返回主程序继续执行图 1中断系统F28335 的中断采用的是三级中断机制,分别是外设级、PIE 级和 CPU 级,如图2 所示,这三级形成了一个串联系统。也就是说,对于一个具体的外设中断请求,必须通过三级的共同许可,否则,只要有任意一级不许可,CPU 最终都不会响应该外设中断。外设中断外设中断12x8=9612x8=96实际使用实际使用4545个个外设级外设级9696路路PIEIERxPIEIERxPIEIFRxPIEIFRxPIEACKxPIEACKxPIEPIE级级INT1-12INT1-12IFRIFRIERIERINTMIN
32、TMCPUCPUCPUCPU级级图 2F28335 中断系统的三级中断机制F28335 的中断主要有两种触发方式:一种是在软件中写指令,例如INTR、OR、IFR 或者 TRAP 指令;另外一种是硬件触发方式,例如来自片内外设或者外围设备的中断信号。无论是软件中断还是硬件中断,中断又可分为:可屏蔽中断和不可屏蔽中断。F28335CPU 一共可以支持 32 个 CPU 中断,其中每一个中断都有一个32 的中断向量。中断向量是指向中断服务子程序的入口地址。在 DSP 控制系统中,各个中断有着属于自己的优先级。当几个中断同时向CPU 发出中断请求时,CPU 会根据这些中断的优先级来安排处理的顺序,优
33、先级高的先处理,优先级低的后处理。表1 列出了 F28335 可以使用的中断向量、各个向量的存储位置以及各自的优先级。表 1F28335 的中断向量及优先级PIE 可支持 96 个独立中断,PIE 控制器将 96 个外设和外部引脚的中断进行了分组,每8 个中断为一组,一共是 12 组,即 PIE1PIE12。外设中断在 PIE 的分布如图 3 所示。表 2列出了 F28335 的 PIE 中断向量表和组内的优先级。图 3外设中断在 PIE 的分布图 4F28335 的中断处理框图表 2F28335 的 PIE 中断向量表和组内的优先级F28335 中断处理框图如图 4 所示。一个来自于外设或者
34、外部的中断必须经过 6 次“开关”使能才能最终被 CPU 相应。F28335 支持 7 个外部中断,XINT1 XINT7。XINT13 和非屏蔽中断 XNMI 复用。每个外部中断可以通过正边沿或负边沿触发,也可以单独被使能或禁止。CCS5.2 与中断相关的文件主要有:1、头文件 DSP28_Piectrl.h,定义了与 PIE 相关的寄存器数据结构。2、头文件 DSP28_PieVect.h,定义了 PIE 的中断向量。3、源文件 DSP28_Piectrl.c,对 PIE 控制器进行初始化。4、源文件DSP28_PieVect.c,对PIE 中断向量表进行初始化,执行完这个程序后,各个中断
35、中断函数就有了明确的入口地址。5、源文件DSP28_DefaultIsr.c,预定义了所有与外设相关的中断函数,在编写中断函数时,只需将具体的内容写入即可。四、硬件连接四、硬件连接实验板上利用一个按键来模拟外中断信号,实验板上的外中断硬件连接图如图5 所示。图 5 外中断与 DSP 的硬件连接图五、源程序分析五、源程序分析1外中断服务函数interrupt void xint1_isr(void);interrupt void xint1_isr(void);/声明外中断服务函数2主函数void main(void)InitSysCtrl();DINT;/关闭CPU全局中断InitPieCtr
36、l();/初始化PIE模块IER=0 x0000;/关闭CPU中断IFR=0 x0000;/清除所有的CPU中断标志InitPieVectTable();/初始化PIE中断向量表EALLOW;/This is needed to write to EALLOW protected registersPieVectTable.XINT1=&xint1_isr;/将XINT1的中断向量指向定义的外中断服务函数EDIS;/This is needed to disable write to EALLOW protected registersPieCtrlRegs.PIECTRL.bit.ENPIE
37、=1;/使能PIE模块PieCtrlRegs.PIEIER1.bit.INTx4=1;/使能PIE模块中的XINT1中断IER|=M_INT1;/开启CPU中断1EINT;/使能全局中断ERTM;/使能实时中断EALLOW;/GPI15are inputsGpioCtrlRegs.GPAMUX1.bit.GPIO15=0;/GPIOGpioCtrlRegs.GPADIR.bit.GPIO15=0;/inputGpioCtrlRegs.GPAQSEL1.bit.GPIO15=2;/XINT2 Qual using 6 samplesGpioCtrlRegs.GPACTRL.bit.QUALPRD
38、0=0 x80;/Each sampling window is 128*SYSCLKOUTEDIS;EALLOW;GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL=15;/Xint1 is GPIO15EDIS;XIntruptRegs.XINT1CR.bit.POLARITY=1;/XINT1下降沿有效XIntruptRegs.XINT1CR.bit.ENABLE=1;/使能Xint1六、实验预习六、实验预习完成预习报告。七、实验过程七、实验过程1新建实验项目。点击CCS 软件的 Project 菜单下的 New CCS Project 选项,如图6 所示,新建一个
39、名为“ZQ28335_XINT”的空项目。2.将参考项目文件夹中的 ExternalInterrupt.c 文件重命名为“main_Xint.c”后,复制到这个项目文件夹中,并删除“main.c”文件。将参考项目文件夹“DSP2833x_common”和“DSP2833x_headers”也复制到这个项目文件夹中,并禁用一些不需要的文件。注:DSP2833x_common 中已删去 CMD 文件夹。DSP2833x_headers 已删去 CMD 文件夹中的“DSP2833x_Headers_BIOS.cmd”。3右击项目名称,选择 Properties(属性),点击 Include Opti
40、ons 选项,添加DSP2833x_common 和 DSP2833x_headers 中的头文件和源文件途径。4点击编译,并点击下载程序,进入到CCS Debug 模式。点击运行程序。5按下开发板上的 XINT 按键,观察发光二极管D10 和 D11 的亮灭情况。注意:按下按键的过程中可能会出现抖动情况。七、课堂编程作业七、课堂编程作业先备份程序,然后修改代码。1、将外中断的中断服务函数名改为XINTFUNB,并在程序中修改相应的设置。2、每按下 XINT 按键,使得发光二极管D10 和 D11交替发光,即(D10 亮,D11 灭)(D10 灭,D11 亮)(D10 亮,D11 灭)(D10 灭,D11 亮)八、完成实验报告八、完成实验报告