5个职位/ 0个新
最后发表
李阳
离线
最后看到:7个月,3个星期前
专家
加入:2014-09-24 11:51
关于设备外部中断的问题

嗨,对话框

一个一直困扰我的问题,我的设备上挂了一个SPI接口的传感器,与da14580相连的中断引脚设置成高电平触发,设置函数如下:
空白GPIO2_INT_CFG(空白)

/*
* GPIO外部中断P2.0连接ADXL362的INT2
*/
SetWord16 (GPIO_IRQ2_IN_SEL_REG GPIO_INT_SRC_P2_0);

SetWord16 (GPIO_INT_LEVEL_CTRL_REG 0 x000);/* 输入是高电平的时候触发中断 */

NVIC_SetPriority (GPIO2_IRQn 2);/ *设定GPIO2中断优先级* /
NVIC_EnableIRQ (GPIO2_IRQn);/ *使能GPIO2中断* /

按照官方例子该函数在periph_init()函数中被调用。

但是用一段时间后,这个外部引脚就不响应中断了,必须重启设备才行。从2014年9月份开始我的问题就是一直存在。

希望能得到解答。

设备:
Gongyu_Dialog
离线
最后看到:1周3天前
加入:2016-04-27 07:07
因为用的是GPIO中断,所以睡眠情况下并不会立即响应

因为用的是GPIO中断,所以睡眠情况下并不会立即响应。你现在的设计在活跃的模式下稳定性如何?
另外,不太清楚你的SPI中断产生的波形。
GPIO_INT_LEVEL_CTRL_REG的配置里面关于EDGE_LEVELN2,你设置为1看看。

李阳
离线
最后看到:7个月,3个星期前
专家
加入:2014-09-24 11:51
嗨,Gongyu_Dialog:

嗨,Gongyu_Dialog:

研究对话框也有一年半了,现在不是睡眠不立即响应的问题,而是根本就不响应的问题。就是会一直不响应除非重新启动。
我提到的SPI是挂接外设的的接口,跟中断没关系,这个外设的中断引脚和da14580的GPIO相连,每秒钟,给da14580一个中断。
GPIO_INT_LEVEL_CTRL_REG的配置里面关于EDGE_LEVELN2,你设置为1,1:等待键释放IRQ0中断后重置
但是这个不是按键中断而是一个加速度计的中断,我需要响应这个中断然后操作加速度计,否则这个加速度计的中断电平是不能释放的。
谢谢!

Gongyu_Dialog
离线
最后看到:1周3天前
加入:2016-04-27 07:07
1.你之前说是用一段时间不行的.....刚开始是好的?

1.你之前说是用一段时间不行的.....刚开始是好的?
2 .另外,对应的中断处理调函数大概会运行多久吗?每次进去需要关中断,处理完了再开中断。
3.如果没有蓝牙广播和连接的情况试过吗?

李阳
离线
最后看到:7个月,3个星期前
专家
加入:2014-09-24 11:51
嗨,Gongyu_Dialog:

嗨,Gongyu_Dialog:
刚开始是没问题的,很难复现。
“每次进去需要关中断,处理完了再开中断。“这个是肯定的。
中断处理调函数运行时间不长具体我没有测过
谢谢!