登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
固件下载
资料汇总
搜索帖子!
NanoPC 系列:
NanoPC-T2
NanoPC-T3 Plus
NanoPC-T4
NanoPC-T6
NanoPC-T6 Plus
NanoPi 系列:
NanoPi-NEO
NEO Core
NEO Air
M1 Plus
Duo2
NEO3
NEO4
M4B
M5
M6
M6V2
核心板:
Smart4418
Core4418
Smart6818
Core6818
SOM-RK3399V2
CM3588
CM3588 Plus
迷你R系列:
NanoPi-R1
R1S
R2S
R2S Plus
Zero2
R3S
R76S
R4S
R5S
R5C
R6C
R6S
热门版块:
开发板销售中心
开发板硬件讨论区
硬软DIY及开发
嵌入式交流与讨论
友友粉丝快线
Ubuntu技术交流区
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
Linux技术交流区
我需要一名高手,救救我,关于外部中断的
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : 我需要一名高手,救救我,关于外部中断的
复制链接
|
浏览器收藏
|
打印
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
楼主
发表于: 2011-09-01 23:45
只看楼主
|
小
中
大
我需要一名高手,救救我,关于外部中断的
我有一个zigbee设备,类似于网卡,信号发送或接收完成后会向6410申请一个中断(上升沿触发)。
我把设备的中断申请引脚接到外部中断上,可以触发到中断。
但问题是,中断触发非常不稳定,有时候6410可以检测到上升沿触发并进入中断处理函数,有时候就检测不到,而导致中断申请引脚一直处于高电平。
有谁可以告诉我造成这个问题的原因吗??
是中断频率过快?是无线信号干扰?还是驱动问题?
顶端
回复
引用
分享
911gt3
^很多问题的背后都是简单的原因......
级别: 荣誉会员
作者资料
发送短消息
加为好友
UID:
34780
精华:
0
发帖:
1219
金钱:
6230 两
威望:
1246 点
综合积分:
2438 分
注册时间:
2010-12-21
最后登录:
2017-09-18
1楼
发表于: 2011-09-02 09:42
只看该作者
|
小
中
大
你用的是什么板子? linux还是android下?
你的中断处理大概是怎么做的?
顶端
回复
引用
分享
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
2楼
发表于: 2011-09-02 19:17
只看该作者
|
小
中
大
回 1楼(911gt3) 的帖子
linux 和android 同样的情况, android下的驱动只涉及内核跟linux下一模一样。
大概就是把数据写到zigbee设备芯片后,让zigbee发送出去,zigbee设备发送完了就通过中断申请告诉arm数据发送完毕,arm检测到那个上升沿触发后就执行相关的操作。
现在问题是zigbee设备芯片的中断申请有时候可能被arm检测到,有时候不行。不行的情况下,zigbee设备芯片的中断是申请了,电平上去了,但arm没有检测到那个上升沿。
顶端
回复
引用
分享
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
3楼
发表于: 2011-09-04 19:57
只看该作者
|
小
中
大
回 2楼(vlone836) 的帖子
有谁 能发表一下一间
顶端
回复
引用
分享
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
4楼
发表于: 2011-09-04 20:00
只看该作者
|
小
中
大
回 3楼(vlone836) 的帖子
问题还没有解决啊 救命啊
顶端
回复
引用
分享
911gt3
^很多问题的背后都是简单的原因......
级别: 荣誉会员
作者资料
发送短消息
加为好友
UID:
34780
精华:
0
发帖:
1219
金钱:
6230 两
威望:
1246 点
综合积分:
2438 分
注册时间:
2010-12-21
最后登录:
2017-09-18
5楼
发表于: 2011-09-05 09:55
只看该作者
|
小
中
大
关键的是你的中断处理是怎么做的
顶端
回复
引用
分享
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
6楼
发表于: 2011-09-05 16:29
只看该作者
|
小
中
大
回 5楼(911gt3) 的帖子
啥意思 ?
我在中断处理函数里面 ,先关闭了外部中断,接着把一些工作通过工作队列作为下半部,延后处理。
中断下半部的工作是先读取设备的中断寄存器(自动清零),接着做相关处理,最后允许外部中断。
顶端
回复
引用
分享
911gt3
^很多问题的背后都是简单的原因......
级别: 荣誉会员
作者资料
发送短消息
加为好友
UID:
34780
精华:
0
发帖:
1219
金钱:
6230 两
威望:
1246 点
综合积分:
2438 分
注册时间:
2010-12-21
最后登录:
2017-09-18
7楼
发表于: 2011-09-06 09:41
只看该作者
|
小
中
大
如果外部设备触发一个上升沿中断是在你允许中断之前, 那么就有可能出现这种情况
你可以先在工作队列中, 允许外部中断前, 先读一下GPIO脚的状态看看是不是已经为高电平了来验证一下
你的整个中断处理需要能配合好你的外部设备的中断触发机制, 配合不好很容易就会出现问题
顶端
回复
引用
分享
vlone836
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
29591
精华:
0
发帖:
33
金钱:
2790 两
威望:
558 点
综合积分:
66 分
注册时间:
2010-09-30
最后登录:
2012-12-18
8楼
发表于: 2011-09-06 21:42
只看该作者
|
小
中
大
回 7楼(911gt3) 的帖子
我做了一些同步,应该不会出现你所说的问题。
现在我觉得,可能是硬件问题,会不会有这样的可能:外部中断引脚中断申请过于频繁,在某一次中断处理后由于某种原因(maybe 静电)使引脚电平不能马上降下来,很快又在下一次设备申请中断时外部中断引脚电平又上去了,导致没有造成一个上升沿。
怎么办啊,困扰我很久了,我对硬件不熟。暂时用高电平触发代替,丢人。
顶端
回复
引用
分享
上一主题
下一主题
Linux技术交流区
http://aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问