浅谈Kinetis的中断

浅谈Kinetis的中断

ID:38157233

大小:102.49 KB

页数:3页

时间:2019-05-28

浅谈Kinetis的中断_第1页
浅谈Kinetis的中断_第2页
浅谈Kinetis的中断_第3页
资源描述:

《浅谈Kinetis的中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Kinetis-2015朝花夕拾系列(十二)浅谈Kinetis中断中断机制是学习任何一款单片机中必须要掌握的,编写相应的中断服务程序也是最基本的要求之一了。Kinetis的中断机制是Cortex-M4核的机制,Cortex-M4引入了嵌套向量中断控制器(NVIC)来管理其中断功能,其主要的特点包括:可嵌套中断支持;向量中断支持,Cortex-M系列通过查询中断向量表找到相应的ISR入口,并跳转执行;动态优先级调整,即支持软件运行时改变中断优先级;中断可屏蔽,支持条件性屏蔽即只屏蔽优先级低于某个

2、阈值的中断,当然也可以屏蔽全部中断了;Cortex-M核的NVIC最多支持200多个中断(包括系统异常16个和外部中断240个),其中前16个中断为系统中断。这16个中断可以通过对Cortex-M4内核的调用来完成相关控制。首先介绍飞思卡尔Kinetis系列中断特点:低中断延迟,从中断发生到进入中断服务程序最多12时钟周期;最多120个中断,包含16个核中断和剩余的外部IRQ中断;最多16个可编程优先级;动态改变优先级;可重定位向量表,通过写SCB_VTOR寄存器。NVIC框图:使能外设的

3、中断功能,使之与NVIC的中断输入连接;清除已经挂号发生的中断,写NVICICPRx寄存器;使能相应IRQ中断号在NVIC的中断功能,写NVICISERx寄存器;配置中断优先级,写NVICIPx;写相应的中断服务程序(ISR);使能全局中断EnableInterrupts;具体举例:使能相应外设的中断:ENABLE_EOR_INT;/*使能TSI越界中断*/根据TSI的IRQ中断号,清除已经发生的TSI中断事件,并且使能TSI中断功能,首先在K60的datasheet或者直接到其头文件开

4、始处即可找到中断向量表,查到TSI的IRQ中断号(IRQ号=中断向量表号-16(即前16个核中断,它们不是IRQ中断)):然后利用ARM核自带的API函数使能TSI的IRQ中断,如下enable_irq(83);/*使能TSI的IRQ中断*/该函数的具体内容如下,注意每个NVICCPRx和NVICISERx都是32字节对齐的。voidenable_irq(intirq){intdiv;div=irq/32;switch(div){case0x0:NVICICPR0

5、=1<<(irq%32);NVICI

6、SER0

7、=1<<(irq%32);break;case0x1:NVICICPR1

8、=1<<(irq%32);NVICISER1

9、=1<<(irq%32);break;case0x2:NVICICPR2

10、=1<<(irq%32);NVICISER2

11、=1<<(irq%32);break;}}(3)配置优先级,set_irq_priority(83,5);/*设置TSI中断优先级为5,注意越小优先级越大*/(4)编写相应的中断服务函数/**********************************

12、************************************************Routine:TSI_isr**Description:TSI模块,outofRange中断服务程序,中断服务号为99,IRQ为83**Notes:********************************************************************************/voidTSI_isr(void);然后在写完该中断服务函数之后,我们需要把该中断函数地址映射到中

13、断向量表里面,所以找到isr.h文件打开,设置如下;#undefVECTOR_099/*取消原来默认的宏定义*/#defineVECTOR_099TSI_isr/*重定义中断服务函数名为VECTOR_99*/(5)使能全局中断EnableInterrupts;/*其宏定义为CPSIEi,即设置特殊功能寄存器*/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。