OMAPL138中断问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7563|回复: 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?我现在实现代码如下:
& n& P' A. z- V" G        //kEY GPIO set# ~( S6 C* Z" q
        GPIOBank0Pin1PinMuxSetup();! i: x9 v0 c1 a: x. {4 g/ U
        GPIOBank0Pin2PinMuxSetup();% Y9 @& \3 U, \7 G
        GPIOBank6Pin8PinMuxSetup();; W: D. H! J' d/ W7 A8 M6 U
        GPIOBank6Pin9PinMuxSetup();7 M5 X( ?* d2 S; g# c6 C
        GPIOBank6Pin10PinMuxSetup();' A* N* U8 ?- Z9 z2 s  }1 u5 R
        GPIOBank6Pin11PinMuxSetup();; g+ K; y3 ^' c. {' Y1 `
        GPIOBank8Pin12PinMuxSetup();# ?% r( v; Z6 r
        GPIOBank8Pin14PinMuxSetup();" o& D, t" M9 w! a& e* k; `
        GPIOBank8Pin15PinMuxSetup();' S: _+ T* T. _" J  I& s

9 V) m6 H- l4 ?7 K0 ~. Q! G    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
8 H; B3 ]: L+ N+ x% V  u# S    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);- b, m" G9 e5 F: B( \; \
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);. S0 Y" B) D! F! R4 E! X% V8 \7 P
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);( U+ b3 P3 h# f2 h$ e! I& r
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);4 r, H/ @2 L0 V! B4 ^& C
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
8 T& [- ^& X. w& {4 S    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
! }! b1 H7 h, v/ p    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
& F6 _. J$ x4 ]) p# L    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);. A' D; m3 w8 w
# u  M( y) h8 x/ G) S. m& t

" y) s. U" T0 N, d6 E5 t1 y        // 底板按键中断
6 g6 g# [" H( P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none5 J/ E, [  h" f6 I
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none! \' L' f0 `& _. V( e5 b5 u
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left2 U2 [) t, n+ B( g) s2 D* d# ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
# G8 ]* c* ~9 S& G- g    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
3 Q; L4 R6 z: v1 v( h: s, N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
( g- ]) J; r+ M# b: z3 F) I: O    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
: Z2 x( A: O1 h2 `& l" N+ D/ }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel( Y, x  y& v0 O; O8 @4 c/ M
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm9 j  z2 U0 G' W4 \# g
2 H& x$ R( T' F% k
    // 使能 GPIO BANK 中断
* s/ R% L$ ?, @( P9 N1 ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
+ f, ^/ Y* A8 ~& D8 C    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6/ w+ i; z. X1 C- ?
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8. h6 W: G. R/ p# Y
; P5 T/ B: w+ r" w- S0 P- |9 [0 |
        // 注册中断服务函数* E; L; s3 D6 R; G$ p
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);8 Q3 j" ~+ B; O) u# i
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
2 A# ~$ R8 B0 s$ u        IntEnable(C674X_MASK_INT6);
9 u$ h, X; d: m( ^" G( g7 @
% T- U4 \" }6 ~# J        IntRegister(C674X_MASK_INT7, USER1KEYIsr);( _$ ]/ j8 I4 F  {6 r5 Y
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
: l; b; q( g. ]3 f0 S! \  Z3 f        IntEnable(C674X_MASK_INT7);* c- G9 e  e/ H8 u6 R! I& C+ b) V& }
; J% [! `5 f- s+ e- n. d9 }% J4 |9 y
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
& A2 q1 w$ Y4 Q        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
$ A) @, o: q# K        IntEnable(C674X_MASK_INT8);
$ e3 a; w3 l; j* x% {, n9 H但是现在收不到中断,请问问题出在那里?谢谢
# V) ^9 a( y- G  O
分享到:  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:422 {  `6 ~# k7 ?
从你贴出来的代码看 应该是没有问题的

' L" I7 ~6 E$ B还有其他要配置的地方吗?比如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:42) X  ?. @' h: K+ ^, g0 E
从你贴出来的代码看 应该是没有问题的

- H/ x- v+ `. n; Q: f, f7 c% n追加一个问题:我先在的中断分配如下:
, f1 M" c7 d* c( H: d' a4:VPIF$ g% x& M' B5 F9 F; P) G
5:LCD
( S. _- ]; P) C* `% l- _6:GPIO Bank0- v$ p' s- ~/ c& G3 e5 Z! s
7:GPIO Bank6* v# e0 c; f9 \
8:GPIO Bank8
: ]- f( h1 e" k3 Q9 K9:timer
( I4 ^# _: F! a% u" J* Z7 x* g3 W发现运行后,要么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:247 ~7 @" r: S) {( v5 Z5 j0 o& \
追加一个问题:我先在的中断分配如下:
! a9 W0 ]. |; t4:VPIF
% Z& N, M7 J3 ^, _6 `# s0 ^# u5:LCD

7 `8 h/ b1 \, I5 ?- J: t不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44' m2 F8 X5 l6 a0 v  w
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
0 K4 b' P: v* Q  y$ b$ U
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-19 02:00 , Processed in 0.041542 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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