打印
[应用相关]

中断触发方式改变

[复制链接]
1511|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2019-1-10 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在外部中断函数中,能直接改变中断触发方式吗
沙发
huangchui| | 2019-1-10 11:06 | 只看该作者

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
mmuuss586| | 2019-1-10 13:01 | 只看该作者
可以,重新初始化下;

使用特权

评论回复
地板
dsdfdcdx| | 2019-1-10 16:48 | 只看该作者
可以更改啊,比如把上升沿触发改为下降沿触发,出了中断处理函数之后下次再触发就是已更改之后的方式触发了。

使用特权

评论回复
5
tian111|  楼主 | 2019-1-10 17:26 | 只看该作者
比如我外部触发设置为上升沿触发,检测到上升沿中断然后进入中断函数中,把触发方式改为下降沿,反之改为下降沿

使用特权

评论回复
6
tian111|  楼主 | 2019-1-10 17:29 | 只看该作者
void EXTI0_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(WK_UP==1)                  //WK_UP按键
        {        .........                        
                EXTI->FTSR|=1<<0; //改为下降沿
                ....
        }
        else if(WK_UP==1)                  //WK_UP按键
        {        .........                        
                EXTI->RTSR|=1<<0;   //改为上升沿
                .........
        }
        EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中断标志位  
}

使用特权

评论回复
7
huangchui| | 2019-1-10 17:34 | 只看该作者
这样也可以做成上升沿和下降沿同时触发中断,进入中断后根据引脚电平来判断是何种边沿中断

使用特权

评论回复
8
午夜粪车| | 2019-1-10 17:38 | 只看该作者
又是在中断中延时???!!!

使用特权

评论回复
9
zhaoxqi| | 2019-1-10 17:43 | 只看该作者
按键消抖可以用个定时器外部中断发生后定时10ms再去检测,这样在中断中用延时非常的不好,影响整个程序的响应时间

使用特权

评论回复
10
chuxh| | 2019-1-10 17:47 | 只看该作者
STC-ISP下载软件里有下降沿+上升沿触发示例程序

使用特权

评论回复
11
juventus9554| | 2019-1-10 17:51 | 只看该作者
在哪里呢中断里延时

使用特权

评论回复
12
tian111|  楼主 | 2019-1-10 17:55 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先

使用特权

评论回复
13
八层楼| | 2019-2-1 12:13 | 只看该作者
当然可以了啊

使用特权

评论回复
14
guanjiaer| | 2019-2-1 12:45 | 只看该作者
当然可以了  不过改变的时刻要注意进行现场保护

使用特权

评论回复
15
heimaojingzhang| | 2019-2-1 14:40 | 只看该作者
毫无疑问可以啊

使用特权

评论回复
16
keaibukelian| | 2019-2-1 14:46 | 只看该作者
当然可以  不过需要做的小心点

使用特权

评论回复
17
labasi| | 2019-2-1 15:39 | 只看该作者
这个 涉及到优先级的问题吗

使用特权

评论回复
18
paotangsan| | 2019-2-1 16:14 | 只看该作者
那能改变中断本身的触发方式吗

使用特权

评论回复
19
renzheshengui| | 2019-2-1 16:22 | 只看该作者
感觉中可能是可以的

使用特权

评论回复
20
辣鸡小白| | 2019-6-6 22:52 | 只看该作者
tian111 发表于 2019-1-10 17:29
void EXTI0_IRQHandler(void)
{
        delay_ms(10);//消抖

你好 想请教一下 我现在也是这么做的 改变触发沿的方式同时也改变上下拉的方式 但还是没有实现 请问要怎么实现呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝