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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7654|回复: 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?我现在实现代码如下:
3 |+ U- r) ^- m  n& M        //kEY GPIO set
: m+ i' J3 c5 @5 A: X% p9 p. @        GPIOBank0Pin1PinMuxSetup();1 q: X: }, ~* W* P4 C
        GPIOBank0Pin2PinMuxSetup();# N8 i1 Q# A! A
        GPIOBank6Pin8PinMuxSetup();) m8 t  c/ Q0 m. g! c
        GPIOBank6Pin9PinMuxSetup();2 W8 m5 |- Z8 S7 M. O2 r) ^
        GPIOBank6Pin10PinMuxSetup();
! G6 `1 g& I' z        GPIOBank6Pin11PinMuxSetup();
+ O1 E4 C2 A4 E        GPIOBank8Pin12PinMuxSetup();1 @) \8 U6 u) l$ L% y5 A/ o
        GPIOBank8Pin14PinMuxSetup();
# t9 `; J% t5 V! M. w        GPIOBank8Pin15PinMuxSetup();8 W, W0 f$ v* Y) n, j8 d
- C  x4 c  u& b5 X1 C* {* g6 R# b
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
# ~' L! {' ?) \! @    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);: y5 |( q5 r9 K1 x9 s, e
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
" ~# N! S2 w% Y' n- K! _    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);5 k! k9 m4 ]& m) d) I+ |+ G1 B
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
+ [+ h3 W" T2 g7 V# j    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
, A* w, U; B$ L+ D7 j    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);( K: q/ }6 P: N" m5 g
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
7 u; n" E2 I% K7 \) |    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
7 p" i# l9 x$ j, ~0 Q+ h3 N2 ]% q* v9 d) O4 Y% u5 {
" f) E  c- }1 j1 f8 {. r
        // 底板按键中断
0 d  M3 f, T4 Y; R8 J+ @. Z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
. w2 n* ~0 F; k3 N: ?    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none3 u! \) [7 D) F$ d$ ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
# s8 ]# r% D' |3 F    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok  z7 }3 `8 D  Z! x8 M+ [1 p
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
/ P0 D5 D+ g! @' j    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right! x9 r# m% N8 s6 ?3 T5 c* X4 B
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
! E& T/ Z4 p! ^$ \  C    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel; f6 m; x- O5 j% E7 i
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
0 x1 i, X6 l! |$ R1 f/ m, j
6 c9 v5 C" M! @0 @    // 使能 GPIO BANK 中断
( u; z/ d7 `6 P' Q" a/ O3 g3 w2 x    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0, U; U1 q! L8 v# s( U& ]
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
2 ~* S6 A) _  r- x; W5 _1 O- y. ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
& |. i8 ]% t# ?
) p, p4 F% A* h9 t: j( P( S& X        // 注册中断服务函数' ^( _8 J7 g5 D- R3 n  C; W& o
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);% J; {( t  }3 S. t+ V9 w
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);, G/ C3 Y$ u: P$ [2 \; x
        IntEnable(C674X_MASK_INT6);& X, L4 r5 M# r% i5 W
& x( r4 {; i/ T: T5 K4 t
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);  D+ H  S+ k( R2 o# ?; }
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
# {0 v* G1 z1 l. H2 O4 }        IntEnable(C674X_MASK_INT7);' s$ \/ V3 E7 d; v4 }  F% i# Q

- n% Y4 l/ f& F& b: C/ Z        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
& o2 _. C( F4 y, L6 M# {$ L        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
0 j  J, j9 D6 v. c5 ^" w$ J        IntEnable(C674X_MASK_INT8);
" b( `, A0 q7 @5 ]但是现在收不到中断,请问问题出在那里?谢谢7 l1 L' x! j4 U3 w+ `
分享到:  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- s) d. S7 d8 V5 `7 y
从你贴出来的代码看 应该是没有问题的
% L- U+ ~% x+ ^
还有其他要配置的地方吗?比如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
9 p4 d4 v+ G) [' [) D0 P- p% }& O从你贴出来的代码看 应该是没有问题的

: n9 N0 [3 [% @0 h$ S" D追加一个问题:我先在的中断分配如下:
, Q' v+ ]$ l6 P0 E$ D. Q4:VPIF
, w' @  H' d1 R1 z: b7 T2 N8 k5:LCD
0 \7 l) l5 r* X$ g" G/ ~' p6:GPIO Bank0
: }# a  B- x$ P6 G7:GPIO Bank6- I5 a9 h5 m5 O. L, m
8:GPIO Bank8; e; X; [2 G. R" m8 i
9:timer/ Q4 _" ]+ a; F7 u: @
发现运行后,要么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
& g* b, H  P2 P( o: }. J. Y追加一个问题:我先在的中断分配如下:% l9 l. ~4 F/ K
4:VPIF
  d' a+ N! a; B; C# C' j6 _5:LCD

- ~0 C) n- A2 B) D. z不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
2 D5 o9 S4 H3 r+ N' w0 z5 q4 @不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

0 O3 b0 q; H% D% t恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 06:45 , Processed in 0.039790 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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