查看: 4140|回复: 4

[其他] KBI问题求助

[复制链接]

该用户从未签到

13

主题

37

帖子

1

中级会员

Rank: 3Rank: 3

积分
220
最后登录
2021-7-16
发表于 2018-8-13 16:56:20 | 显示全部楼层 |阅读模式
在用KBI时有几个问题:
1、KE06 KBI中断设置的是仅下降沿触发,然后使能后就直接进了回调函数,用示波器看了下,一使能KBI中断后相应的引脚有个下降沿,这个是什么原因,然后在回调函数中设置去抖延时,在主程序中执行扫描按键,主程序扫描程序中先失能KBI,按键扫描完成后再使能KBI,结果跟之前一样,一使能就进入中断。
2、设置的是下降沿中断,偶尔会出现一个问题:在松开按键的时候的上升沿也触发了KBI中断。出现几率大概是十次有一次,用示波器看过波形,确实是上升沿后出现的中断。
大佬们求解决,万分感谢!

最佳答案

小小的城。 发表于 2018-8-15 17:04 感谢回复!对,那个问题也是我提的,因为项目比较急,和公司对接的FAE说没法支持。。卡这里挺久了,所以 ... 对于配置成下降沿触发的KBI:引脚被按下触发下降沿中断后,除非你释 ...
回复

使用道具 举报

该用户从未签到

723

主题

6382

帖子

0

超级版主

Rank: 8Rank: 8

积分
25494
最后登录
2025-9-9
发表于 2018-8-14 13:38:32 | 显示全部楼层
楼主你好!

回答你的两个问题:

1、KE06 KBI中断设置的是仅下降沿触发,然后使能后就直接进了回调函数,用示波器看了下,一使能KBI中断后相应的引脚有个下降沿,这个是什么原因,然后在回调函数中设置去抖延时,在主程序中执行扫描按键,主程序扫描程序中先失能KBI,按键扫描完成后再使能KBI,结果跟之前一样,一使能就进入中断。



答: 楼主,你有没有使能内部上拉呢?

    在PORT寄存器中,你把上拉配置下,或者外部加个上拉试试。


2、设置的是下降沿中断,偶尔会出现一个问题:在松开按键的时候的上升沿也触发了KBI中断。出现几率大概是十次有一次,用示波器看过波形,确实是上升沿后出现的中断。
答: 你是说,你只是使能了下降沿中断,但是松开按键的时候,上升沿也触发? 还是在松开的时候,按键上面有上下波动的波形呢? 可以在按键上加个小电容做个硬件滤波试试。

如果还有问题,还请及时更新你那边测试情况。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2018-8-15 11:11:15 | 显示全部楼层
    楼主你好官方英文论坛那个KBI问题应该就是你提的吧?
    KBI首次使能时那个假的中断,按照手册里的步骤应该能够避免的。
    false keyboard interrupt flag.png
    MCUXpresso SDK 里那个KBI例子,其KBI初始化过程也是按照上面流程剔除这种虚假中断的。
    KBI_Init.png
    我用此程序在FRDM-KE06Z开发板上测试(将J2 12输出引脚与J2 2脚KBI0_P10连接)。
    在KBI0_IRQHandler里打断点,初始化之后并未直接进入中断,而是在GPIO_PortToggle之后才触发了KBI中断。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    37

    帖子

    1

    中级会员

    Rank: 3Rank: 3

    积分
    220
    最后登录
    2021-7-16
     楼主| 发表于 2018-8-15 17:04:08 来自手机 | 显示全部楼层
    FSL_TICS_Robin 发表于 2018-8-15 11:11
    楼主你好官方英文论坛那个KBI问题应该就是你提的吧?
    KBI首次使能时那个假的中断,按照手册里的步骤应该能 ...

    感谢回复!对,那个问题也是我提的,因为项目比较急,和公司对接的FAE说没法支持。。卡这里挺久了,所以多方求助。我用的是官网下的FRDM-KEXX-Driver-Library-Package固件库。昨天我在固件库提供的KBI_Init里使能中断前置位了KBACK,然后就不进虚假中断了。我的程序是矩阵键盘,三列的脚接了kbi中断,下降沿时进中断后关kbi中断扫描结束后再开中断,再开中断的时候偶尔还是会虚假中断(开中断前置位了KBACK)。所以这里很费解。最后我采用在中断中判断sp寄存器,有效滤除了虚假中断。

    然后还有个问题,按键松开的上升沿偶尔会触发中断同时置位相应的sp寄存器位。我用示波器看了下,绿色是按键接kbi中断的电平波形,黄色是我在判断sp寄存器后,用某个引脚来翻转电平来指示何时进了中断且是已使能的kbi引脚触发的中断(读了sp寄存器)。 这里我按了8次按键,但是触发了10次中断(黄色翻转了10次),从波形分析可以看出,其中有两次是上升沿触发的中断,并且波形没有明显的毛刺。很懵逼,请大佬看看,不胜感激!
    P80815-162758.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2018-8-16 11:33:04 | 显示全部楼层
    小小的城。 发表于 2018-8-15 17:04
    感谢回复!对,那个问题也是我提的,因为项目比较急,和公司对接的FAE说没法支持。。卡这里挺久了,所以 ...

    对于配置成下降沿触发的KBI:引脚被按下触发下降沿中断后,除非你释放该按键使其返回高电平,否则无法再触发KBI中断的。所以我觉得你可能不用在KBI中断函数里开关中断。
    35.5.1 Edge-only sensitivity.png

    我在FRDM-KE06Z开发板测试FRDM-KEXX-Driver-Library-Package中的KBI例子(屏蔽掉RTC中断闪烁灯 眼花),并没有遇到你说的上升沿也反转LED灯电平的情况呢。
    请问你测试过那个例子吗? 或者直接把你的程序发过来吧


    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-11 13:36 , Processed in 0.100767 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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