中断原理:DSP对于TMS320C6000 CPU有三种类型的中断:复位、可屏蔽、不可屏蔽复位中断,优先级最高,与复位信号相对应。 不可屏蔽中断具有最高优先级,对应第二个中断信号。 最低优先级中断4~15对应INT4~INT15信号。 复位、中断和一些 INT4?INT15 信号映射到 C6000 器件上的引脚。 有些 INT4~INT15 中断信号由外设内部使用,有些可能不可用或可以在软件控制下使用。 外部中断与定时器等片内设备中断不同。 它们源自片外 DSP,属于硬件中断。 外部中断信号通过DSP器件封装上的专用引脚输入到DSP,并且是可屏蔽中断。 TMS3206713DSP有3个外部中断:EXT_INT4~EXT_INT7。 如果CPU允许的话,这4根信号线上的低脉冲信号就会中断CPU。 设置中断是为了使CPU能够处理外部异步事件。 通常DSP工作在包含多个外部异步事件的环境中。 当这些事件发生时,DSP应及时执行这些事件所需的任务。 中断要求CPU暂停当前的工作并处理这些事件。 处理完成后,又回到原来中断的地方继续原来的工作。 显然,服务中断包括保存当前处理场景、完成中断服务、恢复各个寄存器和场景,然后返回继续执行暂时中断的程序。
请求CPU中断的请求源称为中断源。 这些中断源可以是片内的,如定时器等,也可以是片外的,如A/D转换等片外设备。 片外中断请求连接到芯片的中断引脚,并在这些引脚的上升沿生成。 如果该中断被使能,则CPU开始处理该中断,并将当前程序流程转移到中断服务程序中。 当多个中断源同时向CPU请求中断时,CPU会根据中断源的优先级,响应最高优先级的中断请求。 TMS320C6000 有 11 个寄存器来管理中断服务: *控制状态寄存器 CSR 控制全局中断的使能或禁止 *中断使能寄存器 IER 使能或禁止中断处理 *中断标志寄存器 IFR 指示发生中断请求但没有响应 *中断设置寄存器ISR 手动设置 IFR 中的标志位 * 中断清除寄存器 ICR 手动清除 IFR 中的标志位 * 中断服务表指针 ISTP 指向中断服务表的起始地址 * 不可屏蔽中断返回指针 NRP 包含从非中断返回可屏蔽中断 地址,中断返回通过 BNRP 指令完成 * 可屏蔽中断的返回地址 IRP 可屏蔽中断的返回地址 * 中断选择寄存器 IML 可以选择 CPU 中断号 10-15 对应的中断源* 中断选择寄存器IMH可以选择CPU中断4-9号对应的中断源。 * 外部中断极性选择寄存器EIP选择外部中断(INT4-INT7)的触发极性。 要引起 CPU 中断人物立绘,外设事件必须确保: CSR 使能中断并且 IERST1 寄存器中的 INTM 使能。 (设置为0),服务程序入口地址传送指令放置在中断服务表的相应位置,对应的中断源放置在IML或IMH的适当位置。
当CPU响应中断时,PC指针指向中断向量表中该中断对应的地址,进入中断服务子程序。 中断向量表是DSP存放中断服务程序的内存区域,大小为80H。 在中断向量表中,每个中断占用32个字的空间。 一般情况下,这里存放的是跳转或延迟跳转指令。 中断向量表的位置可以更改。 这可以通过修改ISTP寄存器中中断向量表的基地址来实现。 程序应包含中断向量表。 向量表中的每一项为32个字,存储跳转指令。 跳转指令中的地址即为相应服务程序的入口地址。 第一个向量表中的第一项是复位向量,它是CPU复位操作完成后自动进入执行的程序入口。 程序中包含相应的中断服务程序,其入口地址应添加到相应的中断向量表中。 将程序中的中断向量表重定位到本程序的中断向量表地址; 设置中断源(IML、IMH)和中断屏蔽寄存器IER__定时器原理:设备有一个32位通用定时器,可用于:计时事件、计数事件、产生脉冲、中断CPU、DMA发送同步事件定时器有两种信号模式:内部时钟或外部源。 定时器有输入插座和输出端口。 输入和输出。 (tinpand tout) 可用作定时器时钟的时钟输入和输出。 也可以单独配置为通用输入和输出。 监控定时器状态: 设置 TOUT 引脚功能: 80004 定时器周期寄存器 PRD 设置定时器的计数周期,设置 TSTAT 信号的频率 80008 定时器计数寄存器 CNT 定时器当前计数值 键盘使用:ICETEK-C6713-EDU 实验盒对 TMS320C6713DSP 存储空间使用地址范围:0901f0000h-0901fffffh 数据宽度:160901f0000h:ICETEK-CTR 全局控制寄存器写地址 0901f0002h:读键盘扫描码地址、LCD 命令写地址 0901f0004h:除键盘缓冲区读地址、LCD 控制写地址0901f0006h:LCD 左侧显示数据写入地址 0901f0008h:LCD 右侧显示数据写入地址 0901f000Ah:LED 阵列数据写入地址 0901f000Eh:LED 阵列使能、红绿灯状态、PWM 状态写入地址、直流电机使能其他地址:保留液晶显示器的显示控制原理:ICETEK-C6713-A是以TMS320C6713DSP为核心的DSP扩展评估板。 通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。
液晶显示模块的访问和控制是由C6713DSP对CE1空间的特定地址进行操作来完成的。 LCD 控制寻址:命令发送地址为 0901f0002H,数据发送地址为 0901f0006H0901f0008H,辅助控制地址为 0901f0004H。 显示控制方法: - 液晶显示模块中有两个显示缓冲存储器,与屏幕上显示的像素相对应。 向它们写入值将更改显示。 写“1”则显示1点,写“0”则不显示。 。 系统硬件上电复位后,软件根据用户的需要自动设置各种控制器命令码和参数,从而完成液晶屏的行数、列数、扫描频率、光标等液晶模块的参数设置。职位等。 以及显示模式等一系列初始化过程。 系统正确初始化后,外部ROM中的数据可以通过DSP直接发送到SED1335显示缓冲区,控制器可以控制液晶屏显示用户所需的画面。 同时,用户还可以根据自己的需要,改变主程序运行过程中的图片显示形式。 测试箱上与其连接的对应端口为端口8001.8002,控制LCD开关和行列显示,端口8003和8004控制左右屏的显示。 具体情况如下:port8001=0x3f; 端口8002=0; 打开显示端口8001=0x3e; 端口8002=0; 关闭显示端口8001=0x0c0; 端口8002=0; 从内存的第0行开始显示,行数随着数字的增加而增加。 直到8点。
端口8001=0x40; 端口8002=0; 控制0端口8001=0x0b8; 端口8002=0; 控制0端口8003=0x80; 端口8002=0; 控制左屏显示端口8003=0x01; 端口8002=0; 控制右屏显示 发送控制命令:到LCD 显示模块通过向命令控制地址写入命令控制字,然后向辅助控制地址写入0 来发送控制命令。 由于与DSP相比,LCD模块是一个慢速设备,因此可能需要在命令之间添加延迟语句贪吃蛇游戏设计报告,或者将CE1空间中的EMIF访问控制寄存器设置的访问延迟添加到显示数据中:使用命令控制字选择操作。 位置(页数、列数)后音乐,即可将要显示的数据写入液晶模块的缓存中。 只需将数据发送到相应的数据控制地址即可。 由于LCD模块与DSP相比是一个慢速设备,因此可能需要在命令之间添加延迟语句,或者增加CE1空间中EMIF访问控制寄存器设置的访问延迟。 LCD程序:voiddraw(intindex)intpage; //定义页 int row; //定义列page=index%8; 设置操作页LCDCMD(row+LCDCMDVERADDRESS); 起始列 LCDWriteLeft(Ground.LCDarray[index] ); LCDWriteRight(Ground.LCDarray[索引]); 5、编程本设计是基于DSP芯片的蛇形设计。
显示屏采用液晶显示屏,设计的关键是表现蛇的图形及其运动。 使用一个小矩形块来代表蛇身体的一部分。 对于身体的每个部分,添加一个矩形块。 移动必须从蛇的头部开始,因此蛇不能向相反的方向移动。 如果不按任何键,蛇会自行朝当前方向前进。 然而,按下有效的方向键后,蛇的头部会朝该方向移动,一次移动一段。 蛇的身体,所以按下有效的方向键后,首先确定蛇头的位置,然后蛇的身体随着蛇头移动。 图形是通过从蛇头的新位置绘制蛇来实现的。 此时,由于屏幕没有被清除,原来的蛇的位置与新蛇的位置相差一个单位,所以看起来蛇多了一个身体部分,所以最后一段蛇被背景颜色覆盖。 食物的出现和消失也是由矩形块绘制和覆盖的。 当关卡中蛇头撞到墙壁或自己的身体时,屏幕会刷新贪吃蛇游戏设计报告,表明游戏结束。 程序流程图如下: 感谢您的阅读,祝您生活愉快。