OMAPL138中断问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7991|回复: 6
打印 上一主题 下一主题

OMAPL138中断问题

[复制链接]

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
跳转到指定楼层
楼主
发表于 2015-7-1 16:20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:
) K% P: s6 K/ l# R) M+ C% z, E        //kEY GPIO set* {0 D1 ]8 t# a: T. {% j. E
        GPIOBank0Pin1PinMuxSetup();5 Y) W4 H& l) X* O% Z6 d! G' I
        GPIOBank0Pin2PinMuxSetup();+ n6 x! l. p* t6 \  s& D8 K3 J4 j
        GPIOBank6Pin8PinMuxSetup();3 c& B6 t: R" c% b3 b
        GPIOBank6Pin9PinMuxSetup();
& K: A8 i3 N" b        GPIOBank6Pin10PinMuxSetup();
0 }1 f! V$ D# U$ s3 D        GPIOBank6Pin11PinMuxSetup();
/ {- I+ M9 h/ ]        GPIOBank8Pin12PinMuxSetup();
" k% p* L. v! f2 i) v7 A7 U        GPIOBank8Pin14PinMuxSetup();$ w  h6 `& C" N
        GPIOBank8Pin15PinMuxSetup();
/ {. M& o+ _3 _6 O6 f# [
5 z$ m: H0 n% k/ B    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);0 G/ I/ ^9 [2 [+ b# q
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
8 f  x6 |. |/ j. s# g    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);. V# ]& j. v7 z1 \
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);% u7 K  a8 q( d
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
" K* X, `; p/ p: x    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
/ k  R6 `5 G% b, i    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);' P0 s* m( Q3 h$ c+ ~% E3 v
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);  s) j0 x! {7 s) O6 j2 f
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);& g5 S, c  i& R' v- d
# n) N  o; K5 \

& l1 ^7 d5 P! c        // 底板按键中断
/ z$ ?/ d$ `# r- c5 |' R    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none' r& Q* |6 s; n1 P- P7 z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none2 X' z8 m- r! D; M5 C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
. r! h* m4 y! F1 C4 f9 {    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
4 I; \0 P3 `. S' N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
' @5 l% `: `8 Y% c    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right- N7 G* b  M) I8 g' R  |
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up, s. q' C$ P& W6 s3 B9 }
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel9 w9 o" V6 v  x& J1 P! F0 g
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
& A( l/ x( X) q) B9 z2 O: }* t% F: Q! \* m' d( v, n) q6 }# ~5 u
    // 使能 GPIO BANK 中断
7 ]- u, G. J' g. d( b% J    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
, Q2 X5 C( q2 l! V    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6- H. V( c3 F9 ~0 W) `4 ^
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
9 V# O2 @  [6 }5 D
  H% y# S" {5 S* q- o5 c        // 注册中断服务函数3 j+ Z  h( R0 g: t6 I4 y: C2 b) b( y8 p' b
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);9 ]3 v  b7 l! P' w! Y5 ]
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
4 _- y: ^4 n+ z        IntEnable(C674X_MASK_INT6);/ A# e5 S% P) v) ]' }3 S6 d6 `; X/ U
- u1 y- M: C2 V; @! f$ o7 D
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
* Q& s  S/ ?. U3 S        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);' v) ~) z1 o( \2 A
        IntEnable(C674X_MASK_INT7);- C/ n0 _8 [3 k0 K( W0 W( u
' I3 f, n& O) o! s' K* j
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);/ S4 w1 _9 n6 l( d7 [
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);* W: s2 D- l; y, K( K, c9 F2 z) a) E
        IntEnable(C674X_MASK_INT8);5 l8 F* g3 s, q' Y. A
但是现在收不到中断,请问问题出在那里?谢谢
- G8 W# x# A9 u5 z3 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-7-1 19:42:29 来自手机 | 只看该作者
从你贴出来的代码看 应该是没有问题的
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
板凳
 楼主| 发表于 2015-7-1 21:10:50 | 只看该作者
希望缄默 发表于 2015-7-1 19:42
% J+ r6 }3 c: E) x7 J6 F7 @( O从你贴出来的代码看 应该是没有问题的
& S' T$ B5 e: c& B" ]9 g/ G" n4 g
还有其他要配置的地方吗?比如pll什么的
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
地板
 楼主| 发表于 2015-7-1 21:44:29 | 只看该作者
搞定了,把初始化这部分函数忘调用了……
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
5#
 楼主| 发表于 2015-7-2 01:24:40 | 只看该作者
希望缄默 发表于 2015-7-1 19:429 n7 a! e# ~; W$ O) N& ^7 S( K
从你贴出来的代码看 应该是没有问题的

& L# x$ d. b5 ~7 V/ h追加一个问题:我先在的中断分配如下:  v4 K* y9 W2 j& @4 r- l1 N& X2 n
4:VPIF2 C" J  L0 y( E$ [3 f# o
5:LCD5 `: p% r0 Y+ X+ V) A( Z! t& {
6:GPIO Bank03 e$ M8 E% b2 e
7:GPIO Bank6
$ W7 D% w! X6 H2 p- j8 ~+ P" ^8:GPIO Bank8
9 i+ o2 h! Y$ k9:timer# J4 G3 M& F: l. m' V4 u% i
发现运行后,要么VPIF的中断有效,要么GPIO的中断有效,不知道是什么原因?

点评

不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了  详情 回复 发表于 2015-7-2 10:44
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2015-7-2 10:44:26 | 只看该作者
bit0rain 发表于 2015-7-2 01:24% b, @; s6 u) e: M( l1 F
追加一个问题:我先在的中断分配如下:: J; h. e. ^7 _# F& z0 `
4:VPIF
+ u. U% H" D" N  O$ G3 m5:LCD
# S% J2 s2 G! w/ ]$ X2 A
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
) y& h' v  w, _- z7 A$ d- E6 N9 H! l不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

/ W" H$ v. O8 i7 c  @, b+ J恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-30 23:35 , Processed in 0.041913 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表