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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7372|回复: 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?我现在实现代码如下:
5 S! @- @9 q- |4 d2 Z        //kEY GPIO set
, Q! Q$ F, o% P        GPIOBank0Pin1PinMuxSetup();" w! P4 c$ z! Q- P7 j; T% M/ N+ D3 d; N. V
        GPIOBank0Pin2PinMuxSetup();; n; `. ]9 R3 }/ `3 N( f0 L6 i9 }
        GPIOBank6Pin8PinMuxSetup();
6 E8 M0 e9 x$ S4 o        GPIOBank6Pin9PinMuxSetup();
2 V4 \6 P9 O& k7 p7 G        GPIOBank6Pin10PinMuxSetup();
! Y' t8 v% k1 w4 W. K$ P        GPIOBank6Pin11PinMuxSetup();; R3 X( a6 _$ Y3 O0 D0 [; Q% b& k: g; a- b
        GPIOBank8Pin12PinMuxSetup();. y. T+ F: K+ j: |
        GPIOBank8Pin14PinMuxSetup();
0 R, h# N. V9 n& q4 u        GPIOBank8Pin15PinMuxSetup();
# F2 b! @+ A. w
! W/ Y) \( U3 U) j    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
" G8 Y; S) C: ~) Z1 ^( E$ P& \* Q% M    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);9 p3 t; w$ Y' o0 {  N' e
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);* K4 j) F% U  I" T4 N2 H( U
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
4 g6 T  V! }' K( I0 y9 P* w& \1 V    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);/ @; Z$ D. X. M4 I6 \2 r
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
0 S/ [0 U$ _3 m. b# N% n    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);! g. t% l* D" s: U. s0 m; L& J
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);* w; Q& h9 P* Y! k2 E7 k7 D
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
" r/ u0 i& I) Q# ?. n. a/ l
: W9 D: d4 b" m7 c# W, B" o. J
5 h$ {6 H, Z! c7 b- ]3 Z% U        // 底板按键中断. G# Y: ^( l6 a
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
5 _( n7 c2 z5 i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none( ^, d9 i* n! E7 Q% W7 `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left/ c: ^; {9 X) H; V' B
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
. Q& K- g4 I5 G: V0 z/ X    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
0 J% s& ]4 _/ _* e( J3 N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right( L) n, {1 d+ ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
1 s: k1 v; {6 E. R    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel. l% R8 l* G: x3 d' A( s
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
: D/ Y$ U: D" a7 k5 \! u: d0 v; y; @$ w
    // 使能 GPIO BANK 中断
& Q4 r- j! m! O    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
8 x9 M0 x( g  o; g    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6! F) v. x7 Y% \  A0 C( U
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO87 G. p; Z+ k# c' ?. g6 X

; ~3 b. d$ j, E, M! q        // 注册中断服务函数' S" p0 \+ ~; q7 S: }6 i$ `9 B
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
' N2 r; G$ \5 R. T+ ]& z        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
3 [' M5 D+ [  ?+ w& h        IntEnable(C674X_MASK_INT6);2 P0 ~& F: L8 F

3 V3 _/ r( L: T5 M        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
0 [" i* I! W0 l6 s+ ]2 `% x        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);! ~8 O; S0 A& K
        IntEnable(C674X_MASK_INT7);
# M$ x. m# V: t- Y+ z2 o  Q
0 l! b& Q4 k: F. S7 ~        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
. b7 C2 @/ o' D, O- w        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);( M- b! r3 a( c* ?5 B6 p- D2 O( N
        IntEnable(C674X_MASK_INT8);0 _6 m" h( o0 I: P* w3 ]; x
但是现在收不到中断,请问问题出在那里?谢谢# Z1 |* j1 k3 @% i. p& p) f
分享到:  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, c, O& Y. \+ O8 n& M/ M
从你贴出来的代码看 应该是没有问题的

$ y$ t# Z2 u+ v+ U2 [1 ~& u还有其他要配置的地方吗?比如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+ b2 |* {6 S: b2 t4 k
从你贴出来的代码看 应该是没有问题的
2 h8 a! K6 v# H. L
追加一个问题:我先在的中断分配如下:
# q7 w0 q9 k- o+ R0 F2 Z1 G4:VPIF
, m$ H" G* n( t1 ]# V6 v: M5:LCD: G  W9 I/ P( z: [1 r3 z% c
6:GPIO Bank0
4 h, k6 ?( I" R- ~& t6 s4 ^7:GPIO Bank6
% Q9 q7 u) {+ f8:GPIO Bank8
' i, c% w- s$ O0 K9 ~) ^9:timer
6 E5 x# Z9 M: {( J# J发现运行后,要么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:244 E8 Z3 z( Q- Q
追加一个问题:我先在的中断分配如下:0 S/ p) H+ U5 ]- `1 Y  k# F3 L" s
4:VPIF1 \0 q' t( a+ r6 |" Z
5:LCD
5 G9 s8 Q) V/ J  `! P
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44+ c6 E" K2 _( Q# g7 m" i& F" y
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

6 ?2 ?! G' ]: K) x8 a恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-7 07:59 , Processed in 0.041410 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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