查看: 13427|回复: 11

[求助] KEA128 有没有外部中断的例子。

[复制链接]

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
发表于 2016-6-30 09:12:03 | 显示全部楼层 |阅读模式
官方的没看懂,低电平触发。
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24890
最后登录
2025-7-21
发表于 2016-6-30 09:41:23 | 显示全部楼层
楼主你好!
你是想用NMI中断吗?
如果想使用NMI中断,因为这个中断是不可屏蔽的,所以你可以直接添加NMI的中断服务函数。
然后再中断服务函数中添加你的相关代码即可。
中断函数的名称,你可以在工程的.s中找到。
如果你用的是FRDM-KEA128配套的代码,那么可以使用:
void NMI_Handler(void)
{

}
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-6-30 09:57:31 | 显示全部楼层
小恩GG 发表于 2016-6-30 09:41
楼主你好!
你是想用NMI中断吗?
如果想使用NMI中断,因为这个中断是不可屏蔽的,所以你可以直接添加NMI的 ...

按键中断,是用么 kbi,不会配置,有没有简单点的例子
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24890
最后登录
2025-7-21
发表于 2016-6-30 10:13:08 | 显示全部楼层
本帖最后由 小恩GG 于 2016-6-30 10:14 编辑
673835452 发表于 2016-6-30 09:57
按键中断,是用么 kbi,不会配置,有没有简单点的例子

如果需要按键中断,那你要用KBI例程,官方例程其实已经很简单了。
不知道你看的是什么例程?
你下载FRDM-KEA Quick start package
下载之后,在文件夹:
FRDM-KEA-QSP\Quick Start Package v5\SDK Drivers and Code Example Projects\FRDM-KEAZ128\Code Project Examples for FRDM-KEAZ128\Code Project Examples for FRDM-KEAZ128\Lab7_KBI_KEA128
可以看到相关例程。

void KBI_Init()
{

SIM_SCGC |=  SIM_SCGC_KBI1_MASK; /* Enable bus clock on KBI1 */
KBI1_SC = 0;      /* Clearing mechanism */
KBI1_ES |= KBI_ES_KBEDG(0x00);   /* Polarity setting, falling edge low level ,SW2 */
KBI1_ES |= KBI_ES_KBEDG(0x00);   /* Polarity setting, falling edge low level,SW3 */
KBI1_PE |= KBI_PE_KBIPE(0x10);   /* Enable KBI1 channel 4 , SW2 */
KBI1_PE |= KBI_PE_KBIPE(0x20);   /* Enable KBI1 channel 5 , SW3 */
KBI1_SC = 0;          /* Clearing flags*/
KBI1_SC|=KBI_SC_RSTKBSP_MASK;  /* Clearing RSTKBSP bit*/
KBI1_SC |= KBI_SC_KBIE_MASK;    /* Enable  KBI1 Interrupts */
}

int main(void)
{
/* Initialize Clock to 40MHz, Bus Clock to 20MHz  */
Clk_Init();
/* Configure button pins as inputs and LED pins as outputs */
GPIO_Init();
/* Initialize KBI module */
KBI_Init();
/* Enable KBI1 Interrupts */
Enable_Interrupt(KBI1_IRQn);
while(1);

return 0;
}

void KBI1_IRQHandler()
{
KBI_Interrupt();
}
/***********************************************************************************************
*
* @brief    KBI_Interrupt(void). User Function called by the KBI module on each interrupt
* @param    KBI channel
* @return   none
*
************************************************************************************************/
void KBI_Interrupt(void)
{
KBI1_SC |= KBI_SC_KBACK_MASK;    /*Clear flag*/
if((KBI1_SP & KBI_SP_SP(0x10))>>4)    /* If SW1 has been pressed */
{
  LED0_TOGGLE;       /* Toggle RED LED */
}
if((KBI1_SP & KBI_SP_SP(0x20))>>5)    /* If SW2 has been pressed */
{
  LED1_TOGGLE;       /* Toggle GREEN LED */
}
}

你看也没有冗余的代码,你什么地方不懂,可以直接提问。



回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-6-30 10:27:36 | 显示全部楼层
小恩GG 发表于 2016-6-30 10:13
如果需要按键中断,那你要用KBI例程,官方例程其实已经很简单了。
不知道你看的是什么例程?
你下载FRDM-K ...

没有用官方的库,用的苏大的库,想从官方库里分离出来
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24890
最后登录
2025-7-21
发表于 2016-6-30 10:30:56 | 显示全部楼层
673835452 发表于 2016-6-30 10:27
没有用官方的库,用的苏大的库,想从官方库里分离出来

那你直接把官方的这段代码扣进去好了,一样的。
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-6-30 11:16:32 | 显示全部楼层
小恩GG 发表于 2016-6-30 10:30
那你直接把官方的这段代码扣进去好了,一样的。
  1. /* SW1 of TRK board: PTD0/KBI0_P24 pin */
  2. #define KBI0_PTD0_SHIFT 24
  3. #define KBI0_PTD0_MASK 0x1000000u
复制代码


KBI0_PTD0_MASK 是怎么定义的,我想用PTC3  KB0_P13作为中断触发引脚,
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24890
最后登录
2025-7-21
发表于 2016-6-30 13:15:25 | 显示全部楼层
673835452 发表于 2016-6-30 11:16
KBI0_PTD0_MASK 是怎么定义的,我想用PTC3  KB0_P13作为中断触发引脚,

楼主你好!
建议你先看下KEA128 的参考手册,KBI章节,以及第3章中关于KBI的内容。
48.jpg
  • /*  PTC3   KBI0_P19 pin */
  • #define KBI0_PTC3_SHIFT 19
  • #define KBI0_PTC3_MASK 0x0000080000u
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-6-30 16:46:18 | 显示全部楼层
小恩GG 发表于 2016-6-30 13:15
楼主你好!
建议你先看下KEA128 的参考手册,KBI章节,以及第3章中关于KBI的内容。

非常感谢
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24890
最后登录
2025-7-21
发表于 2016-6-30 17:06:11 | 显示全部楼层

不客气,后续有问题,欢迎继续交流!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-21 10:24 , Processed in 0.111101 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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