第6章补充2以实验一为例讲解程序研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP程序开发;2、电路原理图:;简化原理图;编程思路:软件延时程序实现LED灯闪烁;3、操作步骤要点: (1)新建项目/新建文件/添加文件到项目/编辑文件; (2)点“rebuild all”工具进行编译、汇编和链接; (3)装载上一步生成的out文件; (4)点击“运行”按钮,观察小系统板D1闪烁。;4、汇编程序参考:(主程序文件);4、汇编程序参考:;5、C程序参考:(源程序均为C文件);链接命令表文件;6、C和汇编混合编程参考:;程序识读提示:;(2)汇编编程时有一个重要问题,即中断向量表的 定位,上电时默认是在FF80H处,但实际上很多情况 下无法把中断向量表加载到FF80处,一般重定向到 0080H,并在程序开头重新设置一下IPTR的值。 K_IPTR .set 0080h LDM PMST,A AND #7FH,A OR #K_IPTR,A STLM A,PMST 要注意的是这段代码要用到累加器A,所以嵌入这段 代码的地方必须在用到累加器A之前。;思考题: 认真阅读教材和参考书,将延时程序改写为定 时器查询方式和定时器中断控制的方式,分别 用本次课学习到的汇编、C语言和混合编程三种 方法实现。;提示:定时查询方式实现LED灯闪烁;定时器寄存器(TIM) 定时器周期寄存器(PRD) 定时器控制器寄存器(TCR);定时器开始定时后,减1计数器开始计数, 计数到0再减1时产生借位,将会使中断标志 寄存器IFR的第3位TINT置1,在程序中可以 不断地查询该标志位的状态,以判断定时时 间到否。原理可参见教材。 定时时间=Tclk X (Ttddr+1) X (Tprd+1) 可以思考下面两个问题: 1、请计算在本例中最大定时时间? 2、该怎样用定时器查询方式实现LED闪烁。 ;1)TCR中的TSS位置1,关闭定时器。 2)加载PRD。 3)重新加载TCR;给出定时器查询实现LED灯闪烁的汇编程序:;定时中断方式实现LED灯闪烁;给出“定时器中断实现LED灯闪烁”的汇编程序;中断向量表文件:;链接命令文件:;实例二 方波发生器设计 用TMS320VC5402实现方波发生器。假设时钟频率为4MHz,在XF端输出占空比为50%的方波,方波的周期由片上定时器确定,采用中断方法实现。;定时器初始化 关闭定时器,TCR中的TSS=1; 加载PRD。设定定时中断周期,每中断一次,输出端电平取反一次; 启动定时器,初始化TDDR,TSS=0,TRB=1;中断初始化 中断允许寄存器IFR中的定时中断位TINT=1,清除未处理完的定时中断; 中断屏蔽寄存器IMR中的定时屏蔽位TINT=1,开放定时中断; 状态控制寄存器ST1中的中断标志位INTM=0,开放全部中断。 ;周期为4ms的方波发生器,定时中断周期为2ms,每中断一次,输出端电平取一次反。 初始化定时器0; 根据定时长度计算公式:Tt=T* (TDDR+1) * (PRD+1) 给定TDDR=9,PRD=79,CLKOUT主频f=4MHz,T=250ns Tt=250*(9+1)*(79+1)=2,000,000(ns)=2(ms) ;#include stdio.h #include stdlib.h #include math.h #include file.h #include std.h #define IMR *(volatile unsigned int *)0x00 #define IFR *(volatile unsigned int *)0x01 #define ST1 *(volatile unsigned int *)0x07 #define PRD *(volatile unsigned int *)0x25 #define TCR *(volatile unsigned int *)0x26 extern int flag=0;当前XF输出电平标志, flag=1,则XF=1;否则,XF=0 interrupt void FB(void); ;主程序代码;中断服务程序代码;中断向量表文件vectors.asm;sint24 .space 4*16 sint25 .space 4*16 sint26 .space 4*16 sint27 .space 4*16 sint28 .space 4*16 sint29 .space 4*16 sint3

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档