搜索
bottom↓
回复: 11

飞思卡尔MKL05Z32VLF4单片机实现外部引脚中断的问题(已解决)

[复制链接]

出0入0汤圆

发表于 2013-12-21 17:22:33 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-1-27 15:36 编辑

我试验的是PTB6即irq2方法是使用的pe工具生成的用内部32k时钟的最小程序,别的模块没有添加,导入到iar下后,改动vectors.c中的portb对应的
    (tIsrFunc)&Cpu_Interrupt,          /* 0x2C  0x000000B0   -   ivINT_LPTimer                 unused by PE */
    (tIsrFunc)&Cpu_Interrupt,          /* 0x2D  0x000000B4   -   ivINT_Reserved45              unused by PE */
    (tIsrFunc)&Cpu_Interrupt,          /* 0x2E  0x000000B8   -   ivINT_PORTA                   unused by PE */
    (tIsrFunc)& portb_isr          /* 0x2F  0x000000BC   -   ivINT_PORTB                   unused by PE */
最后一行,然后定义了portb_isr();函数,在主函数中
  PORTB_PCR6=PORT_PCR_MUX(1)|PORT_PCR_IRQC(0x9)&(~PORT_PCR_PE_MASK)&(~PORT_PCR_PS_MASK);
定义了portb6引脚设置成初始状态低电平,上升沿触发,然后加上
            NVIC_ICPR |= 1 << (31%32);
            NVIC_ISER |= 1 << (31%32);
但是,我用的板子上的小灯做位指示,结果证明不能启动。求解,应该还设置什么寄存器?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2013-12-23 10:09:39 | 显示全部楼层
自己顶一下,有关定时器的设置是在pe工具中就做好,还是像我这样呢,,

出0入0汤圆

发表于 2013-12-25 10:53:52 | 显示全部楼层
请问你指的不能启动,是什么意思。
是无法进入main函数,还是无法进入中断服务函数,或是其他?

出0入0汤圆

发表于 2013-12-25 10:54:57 | 显示全部楼层
qqliyunpeng 发表于 2013-12-23 10:09
自己顶一下,有关定时器的设置是在pe工具中就做好,还是像我这样呢,,

其实直接PE一步到位就行了,否则到了IAR下还是需要自己去写寄存器配置等。

出0入0汤圆

发表于 2013-12-25 11:11:52 | 显示全部楼层
推荐你先看下如何建立PE新工程以及添加新模块
在新建PE工程添加模块时就把需要的模块都设置好并生成代码。

在看下如何在IAR中植入PE代码
按照帖子中步骤设置完,即可实现PTB6外部中断的功能了。

出0入0汤圆

发表于 2013-12-25 11:30:55 | 显示全部楼层
楼主请注意一点,Kinetis L系列是只有PORTA口和PORTD口支持外部中断输入的,而楼主代码中vectors.c和vectors.h头文件中后面关于中断向量表的注释是K系列的,所以楼主换成PORTA口就可以了,至于中断号,建议直接参考KL05的头文件开头部分。

出0入0汤圆

 楼主| 发表于 2013-12-25 15:36:35 | 显示全部楼层
FSL_TICS_Robin 发表于 2013-12-25 10:53
请问你指的不能启动,是什么意思。
是无法进入main函数,还是无法进入中断服务函数,或是其他? ...

就是小灯不亮,

出0入0汤圆

 楼主| 发表于 2013-12-25 15:38:35 | 显示全部楼层
FSL_TICS_Robin 发表于 2013-12-25 10:54
其实直接PE一步到位就行了,否则到了IAR下还是需要自己去写寄存器配置等。
...

那有这么个问题,如果,你已经做好了一个工程,想着在在原来的基础上添加个传感器,那改程序的可能性就成0了吧,还要重新的去用pe去生成工程?貌似这样有点麻烦了

出0入0汤圆

 楼主| 发表于 2013-12-25 15:39:02 | 显示全部楼层
FSL_TICS_Robin 发表于 2013-12-25 11:11
推荐你先看下如何建立PE新工程以及添加新模块。
在新建PE工程添加模块时就把需要的模块都设置好并生成代码 ...

恩,谢谢,,我看了,挺好的说的,学习了

出0入0汤圆

 楼主| 发表于 2013-12-25 15:42:28 | 显示全部楼层
FSL_FAE_JiCheng 发表于 2013-12-25 11:30
楼主请注意一点,Kinetis L系列是只有PORTA口和PORTD口支持外部中断输入的,而楼主代码中vectors.c和vector ...

我用pe工具生成了一个工程,结果成功了,PTB6/IRQ_2/LPTMR0_ALT3这么个引脚,有中断的。

出0入0汤圆

发表于 2013-12-25 17:28:36 | 显示全部楼层
qqliyunpeng 发表于 2013-12-25 15:38
那有这么个问题,如果,你已经做好了一个工程,想着在在原来的基础上添加个传感器,那改程序的可能性就成 ...

那就参考着PE生成的代码,手动添加到你的工程里吧。

出0入0汤圆

 楼主| 发表于 2013-12-25 17:41:31 | 显示全部楼层
FSL_TICS_Robin 发表于 2013-12-25 17:28
那就参考着PE生成的代码,手动添加到你的工程里吧。

呵呵呵,这个方法可行,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 22:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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