查看: 7034|回复: 5

【PSOC4】入门学习笔记7——简单的按键中断

[复制链接]
  • TA的每日心情
    开心
    2019-7-11 11:26
  • 签到天数: 1982 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2013-11-4 11:21:11 | 显示全部楼层 |阅读模式
    分享到:
    试验目的:
    学习按键中断,也就是通过按键中断控制LED灯亮灭。需要说明,这次例程还是比较简单,只是了解中断是怎么工作和配置的。
    步骤:
    1、在原理图中放入一个数字量输入组件、一个数字量输出组件,一个中断组件。(如图1.JPG)
    2、配置数字量输入组件,由于按键 接入该组件,所以这个组件配置为数字量输入,在Genneal选项中选择Drive Mode为上拉。Input选项选择下降沿中断,使能输入缓冲。(如图2.JPG)
    3、编写程序:
    (1)、主程序编写:如图3.JPG所示,首先需要使能全局中断,然后设置(开启)中断。定义一个标志位flag,如果它为1,改变LED的显示状态,该标志位在中断中置一。
    (2)、中断函数编写:首先找到isr_1.c,这个就是中断有关的文件,找到CY_ISR函数,它就是中断处理函数。如图4.JPG所示,程序很简单,就是让flag置一,然后清除该中断的标志位。
    4、下载验证:
    下载后开始LED灯是亮的,按一下按键,灯灭,再按一次按键,灯亮。

    试验中所遇到的问题及解决方法:
    问题1:没有找到清除中断标志寄存器的函数,所以调试发现一直处于中断中。
    解决方法:加入函数User_Key_ClearInterrupt(); 在组件中一直没有见到这个函数,并且与清除有关的就只有ISR_ClearPending()函数,在网上发现有人用ISR_ClearInterrupt();函数,试验了一下果然可以。
    问题2:按键输入管脚没有选择上拉,结果中断有问题。
    问题3:只进入一次中断,原因是配置输入组件时,Input选项没有使能输入缓冲。




    1.JPG
    2.JPG
    3.JPG
    4.JPG

    点评

    cytypes.h定义了CY_ISR宏  发表于 2013-11-4 12:12
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-12 10:32
  • 签到天数: 295 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-4 11:31:57 | 显示全部楼层
    顶一个~~~~~~~~~~·
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-7-13 19:58
  • 签到天数: 1818 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2013-11-4 22:19:29 | 显示全部楼层
    记录很详细~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2014-7-7 21:38
  • 签到天数: 155 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-11-23 15:06:10 | 显示全部楼层
    不知为什么我就是不能使用User_Key_ClearInterrupt(); 或者ISR_ClearInterrupt();
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2016-11-23 11:01:55 | 显示全部楼层
    记录很详细~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2017-12-17 21:33:16 | 显示全部楼层
    做个标记,有空学下
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-6-1 16:26 , Processed in 0.157950 second(s), 29 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.