- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七讲 中断 内容 中断基本编程方法 中断函数讲解 疑问 什么是中断? 中断的具体应用? 7.1中断基本编程方法 中断基本编程方法包含以下步骤: 1、包含必要的头文件 2、使能相关片内外设,并进行基本的配置 3、设置具体中断的类型或触发方式 4、使能中断 5、编写中断服务函数 6、注册中断服务 1、 包含必要的头文件 有2个头文件与中断处理紧密相关,在程序中必须包含 : #include hw_ints.h #include interrupt.h 2. 使能相关片内外设,并进行基本的配置 对于中断源所涉及的片内外设必须要首先使能。 使能的方法是调用头文件sysctl.h中的函数SysCtlPeripheralEnable( )。 使能该片内外设以后,还要进行必要的基本配置。 3、设置具体中断的类型或触发方式 不同片内外设具体中断的类型或触发方式也各不相同。 在使能中断之前,必须对其进行正确的设置。 以GPIO为例,分为边沿触发、电平触发两大类,共5种,这要通过调用函数GPIOIntTypeSet( )来进行设置。 4、使能中断 对于Stellaris系列ARM,使能一个片内外设的具体中断,通常要采取分3步走的方法: 调用片内外设具体中断的使能函数 。 调用函数IntEnable( ),使能片内外设的总中断 调用函数IntMasterEnable( ),使能处理器总中断 5、编写中断服务函数 中断服务函数从形式上跟普通函数类似。 中断服务函数命名 对于GCC编译器下的程序,中断服务函数的名称是事先约定好的。 例如,GPIOB端口的中断名称是GPIO_Port_B_ISR,则对应的中断服务函数名称为void GPIO_Port_B_ISR(void),参数和返回值都必须是void类型。 在Keil或IAR开发环境下,中断服务函数的名称可以由程序员自己指定,但还是推荐采用GCC下的标准名称,这样有利于程序移植。 对于Stellaris系列ARM的所有片内外设,在进入其中断服务函数后,中断状态并不能自动清除,而必须采用软件清除。 如果中断未被及时清除,则在退出中断服务函数时会立即再次触发中断而造成混乱。 清除中断的方法是调用相应片内外设的中断清除函数。例如,GPIO端口的中断清除函数是GPIOPinIntClear( )。 一个具体的片内外设可能存在多个子中断源,但是都共用同一个中断向量。 例如GPIOA有8个管脚,每个管脚都可以产生中断,但是都共用同一个中断向量号16,发生中断时都会进入同一个中断服务函数。 为了能够准确区分每一个子中断源,就需要利用中断状态查询函数,例如GPIO的中断状态查询函数是GPIOPinIntStatus( )。 6. 注册中断服务函数 现在,中断服务函数虽然已经编写完成,但是当中断事件产生时,程序还无法找到它,因为还缺少最后一个步骤——注册中断服务函数。 注册方法需要修改启动文件,操作也不算复杂。 Keil 环境 在Keil开发环境下,启动文件“Startup.s”是用汇编写的以中断服务函数“void I2C_ISR(void)”为例,找到“Vectors”表格,根据注释内容把相应的“IntDefaultHandler”替换为“I2C_ISR”, 并且在“Vectors”表格前面插入声明“EXTERN I2C_ISR”完成。 在上述几个步骤完成后,就可以等待中断事件的到来了。当中断事件产生时,程序就会自动跳转到对应的中断服务程序中去。 7.2 中断库函数讲解 中断的使能与禁止 与GPIO端口中断相关的函数 中断优先级 中断服务函数的注册与注销 7.2.1 中断的使能与禁止 IntMasterEnable( ) IntMasterDisable( ) IntEnable( ) IntDisable( ) IntMasterEnable( ) 功能 使能处理器中断 原型 void IntMasterEnable(void) 参数 无 返回 无 IntMasterDisable( ) 功能 禁止处理器中断 原型 void IntMasterDisable(void) 参数 无 返回 无 函数IntEnable( )对某个片内功能模块的中断进行总体上的使能控制。 由函数IntEnable( )进行使能控制的中断分为两大类:一类是属于ARM Cortex-M3内核的,如NMI、SysTick等;另一类是片内外设的,如GPIO、UART、PWM等。 在表当中,中断向量号在15以内的属于ARM Cortex-M
您可能关注的文档
- 浅析工艺美运动在各国的发展.ppt
- 浅谈如何提农村小学生的作文水平.doc
- 泸州市202年下半年事业单位考试公共基础真题.doc
- 浅谈语文对我人生的影响.doc
- 泰州高三期201201.doc
- 浙大远程教2013年春英语1(在线答案7).doc
- 浙大远程大英语B统考辅导讲义.doc
- 浙教版外研英语初二下(八下)原文翻译.doc
- 浙大远程教14春英语2在线作业第二次.doc
- 浙江温州十联合体2011届高三第一学期期中联考英语试卷.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
最近下载
- 注册安全工程师中级其他安全生产专业实务(其他安全类案例)模拟试卷5.pdf VIP
- 2025低压分布式光伏入网技术规范.docx VIP
- GB生产设备安全卫生设计总则.doc VIP
- 产教融合、校企合作——黄淮学院的探索与实践.ppt VIP
- 注册安全工程师中级其他安全生产专业实务(其他安全类案例)模拟试卷9.pdf VIP
- 《呼吸防护用品 自吸过滤式防颗粒物呼吸器》GB 2626-2019-2020.7.1.docx VIP
- 危险货物包装标志.docx VIP
- 地下水质量标准GB148482017.docx VIP
- 《心理学史教学大纲.doc VIP
- GBT-用于校准表面污染监测仪的参考源 α、β和光子发射体及编制说明.pdf VIP
文档评论(0)