注册 登录
查看: 687|回复: 14

[鹰眼] 关于配置中断复位函数

[复制链接]
发表于 2014-10-20 17:33:41 | 显示全部楼层 |阅读模式
主函数里面有
//配置中断复位函数
   set_vector_handler(PORTA_VECTORn ,PORTA_IRQHandler);    //设置LPTMR的中断复位函数为 PORTA_IRQHandler
   set_vector_handler(DMA0_VECTORn ,DMA0_IRQHandler);      //设置LPTMR的中断复位函数为 DMA0_IRQHandler
这两句话是什么意思,为什么要设置呢?我删掉之后图像采集回来只有一场
回复

使用道具 举报

发表于 2014-10-20 17:36:52 | 显示全部楼层
这个是配置中断函数入口。

表示PORTA触发中断就执行 PORTA_IRQHandler 函数,DMA0触发中断就执行 DMA0_IRQHandler函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 17:47:42 | 显示全部楼层
那是不是如果要用其他的中断服务函数,也要这样先配置一下,然后再可以使用
回复 支持 反对

使用道具 举报

发表于 2014-10-20 17:48:45 | 显示全部楼层
LLX 发表于 2014-10-20 17:47
那是不是如果要用其他的中断服务函数,也要这样先配置一下,然后再可以使用

是的,两个参数都修改成所需的即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 17:54:40 | 显示全部楼层
我用的是原来的库,在原先的库中,在isr.h里面先重新定义中断向量表
#undef  VECTOR_103   
#define VECTOR_103    PORTA_IRQHandler    //PORTA 中断  
#undef  VECTOR_016
#define VECTOR_016    DMA_CH0_Handler
然后再声明一下
extern void PORTA_IRQHandler();           //PORTA 中断服务函数  
extern void DMA_CH0_Handler(void);
之后再在isr.c里面写相应的函数
void PORTA_IRQHandler()
{

}

void DMA0_IRQHandler()
{
   
}

是不是如山外哥说的PORTA触发中断就执行 PORTA_IRQHandler 函数,DMA0触发中断就执行 DMA0_IRQHandler函数。这样效果是不是一样的,能否起到配置中断函数入口的作用?
回复 支持 反对

使用道具 举报

发表于 2014-10-20 17:55:58 | 显示全部楼层
LLX 发表于 2014-10-20 17:54
我用的是原来的库,在原先的库中,在isr.h里面先重新定义中断向量表
#undef  VECTOR_103   
#define VEC ...

可以用原先库的方法,也可以用新库,即你楼主贴的方法。

两种方法二选一即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 17:57:22 | 显示全部楼层
好的,不胜感激!
回复 支持 反对

使用道具 举报

发表于 2014-10-20 18:01:16 | 显示全部楼层
LLX 发表于 2014-10-20 17:54
我用的是原来的库,在原先的库中,在isr.h里面先重新定义中断向量表
#undef  VECTOR_103   
#define VEC ...

现在新库的方法,比较容易些,初始化的时候配置,思路比较清晰。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 19:47:11 | 显示全部楼层
仰逸致 发表于 2014-10-20 18:01
现在新库的方法,比较容易些,初始化的时候配置,思路比较清晰。

嗯,旧版本的用习惯了!看来要紧跟时代步伐啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 19:53:39 | 显示全部楼层
仰逸致 发表于 2014-10-20 18:01
现在新库的方法,比较容易些,初始化的时候配置,思路比较清晰。

新库有没有什么文档可以参考呢?比如三天入门M4——Kinetis(V2)这类资料,因为里面增添了一些东西吧,但不是很了解
回复 支持 反对

使用道具 举报

发表于 2014-10-20 20:01:41 | 显示全部楼层
LLX 发表于 2014-10-20 19:53
新库有没有什么文档可以参考呢?比如三天入门M4——Kinetis(V2)这类资料,因为里面增添了一些东西吧,但 ...

新库配套书本,PDF教程最近在制作中,由于增加不少内容,所以需要比较久的时间。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 20:21:19 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-20 20:01
新库配套书本,PDF教程最近在制作中,由于增加不少内容,所以需要比较久的时间。

期待ing
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 22:18:04 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-20 20:01
新库配套书本,PDF教程最近在制作中,由于增加不少内容,所以需要比较久的时间。

山外哥,如果以旧库原来的方法配置中断函数,我在新库里面该怎么写呢?比如调用void PORTA_IRQHandler() 和 void DMA0_IRQHandler()
在#include   "MK60_it.h"和MK60_it.c里面该怎么写。我试了几次都出现错误,求教!

回复 支持 反对

使用道具 举报

发表于 2014-10-20 22:18:50 | 显示全部楼层
LLX 发表于 2014-10-20 22:18
山外哥,如果以旧库原来的方法配置中断函数,我在新库里面该怎么写呢?比如调用void PORTA_IRQHandler()  ...

仅仅是isr 改名为 MK60_it 而已,方法还是一样啊。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-21 15:27:10 | 显示全部楼层
问题解决了。山外哥,比如对于PORTA_IRQHandler中断,中断向量表里面的 VECTOR_103 和   中断号类型声明PORTA_VECTORn 这两个有什么异同点?基础不扎实,满眼都是泪啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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