打印
[STM8]

STM8外部中断:如何区分同一PORT中的不同脚,如PD1和PD2

[复制链接]
4425|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
car_software|  楼主 | 2013-8-1 19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因工程需要, 中断用到同一PORT中的两个脚, PD1和PD2 , 设置PORTD为下降沿触发中断:
PD1或PD2 下降沿都能进入以下中断函数中, 但要如何区别具体是哪个脚引起的中断了?
谢谢!

@near @interrupt void EXTI_PORTD_IRQHandler (void)
{

}
沙发
yuanquanquan| | 2013-8-2 09:47 | 只看该作者
这能区分吗?  手册上有这么一句话:当多个连接到同一个中断向量的外部引脚中断被同时选定时候,那么他们是‘逻辑或’的关
系。    你仔细看看

使用特权

评论回复
板凳
car_software|  楼主 | 2013-8-5 08:57 | 只看该作者
我感觉应该能区分出来, 要不外部中断就太少了,  A~E ,也就是说STM8的外部中断只有5个, 怎么可能了,  相信ST不会设计出这样SB的芯片来...........

使用特权

评论回复
地板
wwchang| | 2013-8-5 09:02 | 只看该作者
你可以在中断里面判断电平,就知道是哪个引脚 了。

使用特权

评论回复
5
xxiao6130| | 2013-8-14 18:25 | 只看该作者
怎么判断,我也想知道。

使用特权

评论回复
6
cjhk| | 2013-8-14 19:28 | 只看该作者
我也想知道如何处理这个问题的   

使用特权

评论回复
7
feilusia| | 2013-8-15 09:31 | 只看该作者
我买的书上有说明,可以在允许中断之前把引脚值保存到内存,进入中断后再读引脚值,比较后就可以知道哪个脚引起的中断。

使用特权

评论回复
8
wishriver| | 2018-2-4 17:29 | 只看该作者
挖坟,翻帖子看到这篇求助,楼上几位真的很搞笑。人家问了会就直说得了。这啊 那啊的说不到重点,
在中断函数里直接判断是哪一个引脚电平拉低就可以了
比如Pd端口中断了,具体来看一下是哪PD3否就这样写
INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */

   if(GPIO_ReadInputPin(GPIOD , GPIO_PIN_3) == RESET)   //判断是否是PD3
  {

   }
}

使用特权

评论回复
9
fengfeng的恒| | 2018-2-5 09:12 | 只看该作者
wishriver 发表于 2018-2-4 17:29
挖坟,翻帖子看到这篇求助,楼上几位真的很搞笑。人家问了会就直说得了。这啊 那啊的说不到重点,
在中断函 ...

如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?

使用特权

评论回复
10
wishriver| | 2018-2-7 21:01 | 只看该作者
fengfeng的恒 发表于 2018-2-5 09:12
如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?

如果你的PD4是需要中断的,那么你就需要初始化的时候允许中断,然后在中断函数里判断中断引脚是不是PD4,如果是就进PD4的处理,如PD3一直拉低那得分为两种情况,一种是pd3是中断引脚,此时pd3会触发一次(下降沿触发模式的话)然后后边再中断就不会进入到PD3的判断中来了

使用特权

评论回复
11
fengfeng的恒| | 2018-2-8 09:08 | 只看该作者
wishriver 发表于 2018-2-7 21:01
如果你的PD4是需要中断的,那么你就需要初始化的时候允许中断,然后在中断函数里判断中断引脚是不是PD4, ...

假如PD3与PD4都是中断引脚,设置外下降沿触发,当两个引脚都是低电平的时候不会触发,但是如果一个时刻,比如PD4变高然后又变低了,这个时候肯定会进中断,但是无法得知是哪个IO触发的,因为PD3变高又变低也同样会触发。

使用特权

评论回复
12
caijie001| | 2018-2-9 09:15 | 只看该作者
car_software 发表于 2013-8-5 08:57
我感觉应该能区分出来, 要不外部中断就太少了,  A~E ,也就是说STM8的外部中断只有5个, 怎么可能了,  相信ST ...

在里面判断io的电平,,,,,

使用特权

评论回复
13
caijie001| | 2018-2-9 09:15 | 只看该作者
cjhk 发表于 2013-8-14 19:28
我也想知道如何处理这个问题的

在进入中断判断io电平,确定是哪个io

使用特权

评论回复
14
caijie001| | 2018-2-9 09:16 | 只看该作者
fengfeng的恒 发表于 2018-2-5 09:12
如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?

初始化触发方式。。。。

使用特权

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

本版积分规则

2

主题

44

帖子

0

粉丝