查看: 2511|回复: 1

RT1052+KPP矩阵键盘接口和systick延时

[复制链接]
  • TA的每日心情
    慵懒
    昨天 09:40
  • 签到天数: 1409 天

    [LV.10]以坛为家III

    48

    主题

    3486

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    7296
    最后登录
    2024-4-19
    发表于 2018-11-29 16:53:25 | 显示全部楼层 |阅读模式
    在1052众多的外设资源里面,我发现了一个比较有意思的外设接口,KPP(矩阵键盘接口),这个在很多MCU里面都没见过,一般都是用过IO输入来读取的,而1052直接集成了!!!最大应该是支持8X8的矩阵键盘输入,而ok10520-c板子也提供了一个4X4的排针接口,可以用来测试。

    KPP的配置也是比较简单,IO复用为KPP模式
    TIM图片20181129162951.png


    设置为中断模式触发
    TIM图片20181120134335.png

    中断函数
    TIM图片20181129163745.png


    按键读取
    TIM图片20181120134359.png






    实验结果,发现按键没有消抖机制,按一下会触发好几次中断
    TIM图片20181120133934.png


    需要添加适当的延时来消抖,这里我们用systick来做延时机制
    可以直接使用如下函数来设置systick,因为我systick采用时钟摘取的方式,所以不影响中断,时钟摘取的意思就是延时之前取一次systick的计数值做参考,然后一直读取计数值做比较,直到大于延时的时间
    TIM图片20181120132922.png


    TIM图片20181120132943.png


    打印信息检测延时效果。
    TIM图片20181120132753.png


    重新进行main函数配置
    TIM图片20181120133753.png



    发现按键相对比较稳定,按一次打印一次。当然这是比较粗糙的消抖方式,不能用于实际产品。
    TIM图片20181120133538.png


    KPP接口的测试,还是比较简单就能配置实现,但没有按键的消抖机制,还是需要自己去实现,这样看起来有点小鸡肋吧

    附上KPP和systick源代码
    bsp.rar (3.54 KB, 下载次数: 9)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-11-30 09:39:39 | 显示全部楼层
    既然做了专门的KPP硬件,却没有硬件的计时防抖,不合理。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-20 13:57 , Processed in 0.118308 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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