查看: 7350|回复: 12

[已解决] 关于KL25 MCU中断服务程序的编写(已解决)

[复制链接]

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
发表于 2013-7-27 21:28:51 | 显示全部楼层 |阅读模式
现在学习KL25中,看到IAR中给的例程中的xxx_isr函数想问一下这是它相关模块的中断函数编写方式吗?它的中断函数编写有什么技巧吗,在PDF没有看到相关的说明,求各位指教!
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

12

主题

52

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
发表于 2013-7-28 12:50:24 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写

关于中断函数的编写方法可以参考http://blog.chinaaet.com/detail/26522.html这篇文章,不过这是K系列的使用方法,但是跟KL类似,你可以借鉴一下~
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-7-28 22:07:35 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写

回复第 2 楼 于2013-07-28 12:50:24发表:
关于中断函数的编写方法可以参考http://blog.chinaaet.com/detail/26522.html这篇文章,不过这是K系列的使用方法,但是跟KL类似,你可以借鉴一下~
仔细一看,原来就是博主,久仰!有一个问题想问您,就是你的那个VECTOR_xxx在那个文件中找到的,为什么我一直找不到呢,KL25的datasheet中最大只有47个中断向量表,这是怎么回事,请指教!
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-7-28 22:12:01 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写

回复第 2 楼 于2013-07-28 12:50:24发表:
关于中断函数的编写方法可以参考http://blog.chinaaet.com/detail/26522.html这篇文章,不过这是K系列的使用方法,但是跟KL类似,你可以借鉴一下~ 

看了一下K系列的,原来KL系列只有47个中断向量表,还有就是这个isr.h文件有什么用呢,我建立工程时是不是一定要将VECTOR.H文件包含进去呢,但我看官方例程中也没有调用这个文件内的函数啊,哎,还没有建好一个完整的工程,对IAR的这些文件还是不明白啊!
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

52

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
发表于 2013-7-29 09:48:15 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(正解)

1.VECTOR_XXX可以在vectors.c和vectors.h里找到;
2.KL系列不同于K系列,就是只有47个中断向量,至于每个中断的含义你可以找到MKL25Z128LK4.h文件,开头部分有解释;
3.isr.h文件是用来重定义中断服务函数的,你打开这个文件仔细理解一下即可;
4.关于建立IAR完整工程,没有必要一个个的添加,你可以从某个demo例程里修改过来,简单的方法可以参考我之前的一篇文章http://blog.chinaaet.com/detail/30714.html
祝顺利~
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-8 23:17:35 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(已解决)

回复第 5 楼 于2013-07-29 09:48:15发表:
1.VECTOR_XXX可以在vectors.c和vectors.h里找到;
2.KL系列不同于K系列,就是只有47个中断向量,至于每个中断的含义你可以找到MKL25Z128LK4.h文件,开头部分有解释;
3.isr.h文件是用来重定义中断服务函数的,你打开这个文件仔细理解一下即可;
4.关于建立IAR完整工程,没有必要一个个的添加,你可以从某个demo例程里修改过来,简单的方法可以参考我之前的一篇文章http://blog.chinaaet.com/detail/30714.html
祝顺利~
 
之前有事,一直没有搞FRDM-KL25的板子了,关于中断的问题我还是没有搞好(本人太愚笨了),我想使用LPTMR的中断函数,用的是IAR中提供的lptmr.c文件中的中断函数(目的只是想让进一下中断),用查询中断标志位的方式能做,主要是在lptmr.c文件中的lptmr_init函数内无法设置断点(应该中断服务程序是可以设置断点的啦),关于中断的设置如下enable_irq(LPTMR_irq_no);  #undef  VECTOR_044
#define VECTOR_044 lptmr_isr。。。。。。为什么始终不能在中断函数内设置断点咧,我看了下IAR中的LOW_POWER_DEMO也是这样搞的啦,但是那个程序能在中断服务程序内设置断点!
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-8-9 09:44:01 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(已解决)

查看一下是否打开了LPTMR对应的NVIC中断和系统总中断,通过寄存器窗口查看TMR的溢出标志是否已经置1,如果已经置1,说明是你中断的问题,如果没有说明还是你LPTMR初始化的问题。
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

52

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
发表于 2013-8-9 16:02:11 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(已解决)

这个还是建议你从官方的demo上改出来,那样出问题的概率小点。此外编写Cortex-M的中断服务函数就是那几个步骤,我在之前跟你分享的那篇文章里已经讲的很清楚了,你可以再仔细理解一下。
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-10 17:12:44 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(已解决)

回复第 7 楼 于2013-08-09 09:44:01发表:
查看一下是否打开了LPTMR对应的NVIC中断和系统总中断,通过寄存器窗口查看TMR的溢出标志是否已经置1,如果已经置1,说明是你中断的问题,如果没有说明还是你LPTMR初始化的问题。
 
 
总中断开了,LPTMR的初始化也没有问题,中断能进,只是它每次进入的是vectors.c中的void default_isr(void)内(是正确的按我设置的LPTMR的时间进入的),似乎是没有找到lptmr.c文件中的void lptmr_isr(void)中断函数入口。
 
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-10 17:14:12 | 显示全部楼层

回复:关于KL25 MCU中断服务程序的编写(已解决)

回复第 8 楼 于2013-08-09 16:02:11发表:
这个还是建议你从官方的demo上改出来,那样出问题的概率小点。此外编写Cortex-M的中断服务函数就是那几个步骤,我在之前跟你分享的那篇文章里已经讲的很清楚了,你可以再仔细理解一下。
 
总中断开了,LPTMR的初始化也没有问题,中断能进,只是它每次进入的是vectors.c中的void default_isr(void)内(是正确的按我设置的LPTMR的时间进入的),似乎是没有找到lptmr.c文件中的void lptmr_isr(void)中断函数入口。已经#undef  VECTOR_044
#define VECTOR_044 lptmr_isr不明白那里还要设置!
 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-10-12 14:29 , Processed in 0.107905 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表