课件:ARM接口设计技术.ppt

  1. 1、本文档共125页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件:ARM接口设计技术.ppt

* * * * 控制中断的寄存器Ⅶ 7.外部中断控制寄存器EXTINT: 外部中断控制寄存器EXTINT用来设置外部中断的触发模式。 EXTINT 位 描述 EINT7 [30:28] 设置EINT7触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT6 [26:24] 设置EINT6触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT5 [22:20] 设置EINT5触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT4 [18:16] 设置EINT4触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT3 [14:12] 设置EINT3触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT2 [10:8] 设置EINT2触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT1 [6:4] 设置EINT1触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT0 [2:0] 设置EINT0触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 * 控制中断的寄存器Ⅷ 8.外部中断请求寄存器EXTINTPND: EINT4,EINT5,EINT6和EINT7分享同一个中断请求源,因此,中断服务程序要通过读取EXTINTPND寄存器来区别这4个中断源。它们的中断处理程序(ISR)必须在处理结束时,通过将EXTINTPND中对应位写1来清除该位。 EXTINTPND 位 描述 EXTINTPNDO 0 如果中断发生在EINT4上,该位置1,同时INTPND21也置1 EXTINTPND1 1 如果中断发生在EINT5上,该位置1,同时INTPND21也置1 EXTINTPND2 2 如果中断发生在EINT6上,该位置1,同时INTPND21也置1 EXTINTPND3 3 如果中断发生在EINT7上,该位置1,同时INTPND21也置1 * 外部中断的应用Ⅰ 1.I/O口设置 首先对PG口的工作模式进行设置,要让PG4-7工作在外部中断输入状态。因此,要将PG口设置在功能3模式下,采用语句: rPCONG = 11 11 11 11 xx xx xx xxB; 如果希望采用内部上拉,则语句为: rPUPG = 0000xxxxB。 * 外部中断的应用Ⅱ 2.外部中断触发模式设置 利用外部中断控制寄存器来设置外部中断的触发模式.由于采用电平触发容易引起重复触发,因此建议采用下降沿或上升沿触发,不同触发方式的语句如下: ①采用下降沿触发时: rEXTINT=01x 01x 01x 01x xxx xxx xxx xxxB; ②采用上升沿触发时: rEXTINT=10x 10x 10x 10x xxx xxx xxx xxxB; ③采用边沿触发时: rEXTINT=11x 11x 11x 11x xxx xxx xxx xxxB; ④采用低电平触发时: rEXTINT=000 000 000 000 xxx xxx xxx xxxB; * 外部中断的应用Ⅲ 3 中断寄存器设置 将EINT4-7设置为IRQ中断模式的语句为: rINTCON=0x5 ; //非矢量中断模式,禁止FIQ中断,使能IRQ中断 设置好了,采用以下语句开启中断: rINTMSK= ~(BIT_GLOBAL|BIT_EINT4567)。 4 主程序编写,代码见课本P219. 5 中断处理程序 void irq_Eint4567lsr(void) { which_int = rEXTINTPND; rEXTINTPND = Ox0f; //清除EXTINTPND寄存器 rl_lSPC=

文档评论(0)

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

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

1亿VIP精品文档

相关文档