网站大量收购独家精品文档,联系QQ:2885784924

DSP中断子程序.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP中断子程序

DSP作业:中断系统的应用中断源扩展方法:有八个中断源,分别表示为IR1,IR2,…,IR8,各个中断源均为边沿触发方式,C5402建立相应的中断系统。构建硬件中断系统如图,每两个一组相“与”后,分别既然如此4个外部中断接口INT0、INT1、INT2、INT3。没组分别将两条线接于HPI端口,此时,HPI端口作为I/O口使用。ST0:状态寄存器0,地址6ST1:状态寄存器1,地址7BH:累加器B的高价位,地址CBL:累加器B的低阶位,地址BBG:累加器B的保护位,地址DPSHD Smem ;将Smem中的数据压入堆栈PSHM MMR ;将MMR中的数据压入堆栈POPD Smem ;将数据从栈顶弹至Smem中POPM MMR ;将数据从栈顶弹至MMR中;外部中断INT0中断服务子程序:INT0ISR:PSHMST0;保存寄存器,将寄存器的值压入堆栈PSHMST1;保存寄存器,将寄存器的值压入堆栈PSHMBG;将地址D压入堆栈,之后类似PSHMBHPSHMBLPORTRHPIPORT, *(hpi_var);从HPI口读数据并存储到*(hpi_var)所在的地址STL*(hpi_var), B;将*(hpi_var)的低十六位放到B中AND#01B, B;加法运算BCIR2,ANEQ;首先判别是否是IR1,是,则执行服务程序;否,则跳至对IR2的判断;扩展中断IR0的服务程序主体IR2:STL*(hpi_var),BAND#010B,BBCINT0END,ANEQ;首先判别是否是IR1,是,则执行服务程序;否,则跳至结束;扩展中断IR1的服务程序主体INT0ED:POPMBL;将数据从栈顶弹至BL中POPMBH;将数据从栈顶弹至BH中,以下类似POPMBGPOPMST1POPMST0RETE;外部中断INT1中断服务子程序:INT1ISR:PSHMST0;保存寄存器PSHMST1PSHMBGPSHMBHPSHMBLPORTRHPIPORT,*(hpi_var);读HPI口STL*(hpi_var), BAND#0100B, BBCIR4,ANEQ;首先判别是否是IR3,是,则执行服务程序;否,则跳至对IR4的判断;扩展中断IR3服务程序主体IR4:STL*(hpi_var), BAND#01000B, BBCINT0END,ANEQ;首先判别是否是IR4,是,则执行服务程序;否,则跳至结束 ;下面代码跟上面雷同,不一一赘述,中断有响应时间,对扩展的中断源来说,实际中断响应时间要算引导程序的时间,过多的中断源,堆栈深度增加,是压栈、弹栈操作频繁,堆栈大小应慎重考虑,不然出现程序混乱错误,若以后要在dsp上发展再深入考虑中断与堆栈的关系。;扩展中断IR4的服务程序主体INT1ED:POPMBLPOPMBHPOPMBGPOPMST1POPMST0RETE;外部中断INT2中断服务子程序:INT2ISR:PSHMST0;保存寄存器PSHMST1PSHMBGPSHMBHPSHMBLPORTRHPIPORT,*(hpi_var);读HPI口STL*(hpi_var),BAND#010000B,BBCIR6,ANEQ;首先判别是否是IR5,是,则执行服务程序;否,则跳至对IR6的判断;扩展中断IR5的服务程序主体IR6:STL*(hpi_var),BAND#01000B,BBCINT2END,ANEQ;首先判别是否是IR6,是,则执行服务程序;否,则跳至结束;扩展中断IR6的服务程序主体INT2ED:POPMBLPOPMBHPOPMBGPOPMST1POPMST0RETE;外部中断INT3中断服务子程序:INT3ISR:PSHMST0;保存寄存器PSHMST1PSHMBGPSHMBHPSHMBLPORTRHPIPORT,*(hpi_var);读HPI口STL*(hpi_var),BAND#010000B,BBCIR8,ANEQ;首先判别是否是IR7,是,则执行服务程序;否,则跳至对IR8的判断;扩展中断IR7的服务程序主体IR8:STL*(hpi_var),BAND#01000B,BBCINT3END,ANEQ;首先判别是否是IR8,是,则执行服务程序;否,则跳至结束;扩展中断IR8的服务程序主体INT3ED:POPMBLPOPMBHPOPMBGPOPMST1POPMST0RETE由INT0、INT1、INT2、INT3的中断优先级顺序可知,前面的中断扩展出来的中断源高于后面的。又由于软件中先查询的比后查询的有更高的优先级,可以得知扩展后的8个终端的优先级顺序由高至低一次为IR1、IR2、IR3、IR4、IR5、IR6、IR7、IR8。

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档