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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7777|回复: 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?我现在实现代码如下:* h0 I% {' c- i) }  |% R5 U
        //kEY GPIO set, x. C* o* Z/ a) ?" p! k9 ~) \
        GPIOBank0Pin1PinMuxSetup();
# ]% E4 a3 e0 O$ U        GPIOBank0Pin2PinMuxSetup();
8 D0 h" u0 G) n0 ]! z        GPIOBank6Pin8PinMuxSetup();) V& p' P2 z% a" s" Q
        GPIOBank6Pin9PinMuxSetup();
7 m4 [* N$ b+ ]$ }4 {5 G/ o& s* x        GPIOBank6Pin10PinMuxSetup();: S/ H7 L: M+ D% |5 A9 J1 d( U* U
        GPIOBank6Pin11PinMuxSetup();9 }0 M5 K5 l+ r% \/ [% j* p  |- M
        GPIOBank8Pin12PinMuxSetup();% T6 X* I5 A3 L
        GPIOBank8Pin14PinMuxSetup();
: J/ M$ F/ Y0 @        GPIOBank8Pin15PinMuxSetup();& ^, t- U1 h. k' M1 L/ ]( ?
8 P: p/ Q3 `6 y7 {+ Y+ M
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
$ W) e+ s: X6 Z# x% _3 b    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
+ S8 f9 @* b3 u4 O# U  {% j, T/ L( l5 o    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
$ J# L5 X0 |5 C    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);9 I0 R9 N0 F6 F( b5 ]& V
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);; H: V: U2 R4 k! `% b
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
2 s( `; x; m( U8 Y8 e. c7 [    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);1 D  ]% y5 D: C
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
4 x$ }8 [7 o0 e' T/ @" i    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);: @, p2 |0 |/ u

# T4 C: D1 ~: U0 l( V. b* Q( z% k& x4 G4 R6 k" b/ Q2 `$ }5 }
        // 底板按键中断
0 e& H% _$ N( h$ M. P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
: ]3 s. l# @/ i9 P/ W( D    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
& n! w0 Y2 a# N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left- [" O- T. @- A7 s" l" w! T6 o
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
# L8 F1 X( J3 m: a4 C% J    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down3 k1 z0 R* P8 _  [
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right( P! s  V1 G5 m# z6 h, O  i
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
% |9 _' ~8 v0 f% h- m0 o    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel$ C/ `0 @8 H* p  G7 @8 K, e; a9 d, o
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
5 J' C: ]: ^/ _3 p) V+ p
! G7 T% a) ]/ P, o& U( U    // 使能 GPIO BANK 中断% e' I  @4 S5 l* l1 q1 k8 ^. D2 }
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
: d/ h- H5 o' u! a: ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
6 i7 z3 S; j0 Q9 C    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8( {6 G2 g# o" y- ^$ t9 z/ K
8 }. c/ L* M* L9 V6 O: o0 G: ]
        // 注册中断服务函数' U" d8 o2 t$ Q% M3 {% u
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
6 k/ G: |* W, P2 d        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
% L4 m* t% D$ }9 S/ E' v        IntEnable(C674X_MASK_INT6);
! ]$ q9 B( t+ b$ e
# x% j& X* c- G* ^( N4 |+ S        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
2 I+ o# z# g' z        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
7 q; R# b) A1 r1 Y- u' X& G        IntEnable(C674X_MASK_INT7);" H1 ?* w) y  d3 T  D( |
8 `( f; W  V/ Q! e5 y8 c9 L
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
4 F* r1 ]- i* M2 t3 b+ g* q        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);; w1 Y' a. Q* z5 L$ ]0 |
        IntEnable(C674X_MASK_INT8);
, k  m4 Y8 o* M& P/ `1 |; |' z但是现在收不到中断,请问问题出在那里?谢谢+ ]4 {/ g' d6 [3 ^! g
分享到:  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:426 h( b3 W! a& J' o6 M
从你贴出来的代码看 应该是没有问题的

9 @/ c$ |1 M; x8 a8 [1 w$ F还有其他要配置的地方吗?比如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
% |) H0 N5 W: ^! A+ r, B, J/ d从你贴出来的代码看 应该是没有问题的
) g( y5 i2 ^6 A9 ^
追加一个问题:我先在的中断分配如下:
  W( d8 @5 A' J" D4 g( _9 Q4:VPIF+ y( B4 B% u3 l7 G
5:LCD
  a# H, @: C; W  q, ]( p  u6:GPIO Bank0
  g8 c" j$ N3 i$ Y7:GPIO Bank6* J* Y' ]) A/ Q# k2 [0 r: @/ p
8:GPIO Bank8
& W1 B8 I. X3 U7 d9:timer1 ?% Y: @. a% G, `: h) r0 C4 d6 ^
发现运行后,要么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
3 A. {' o9 e7 c+ W, G; Y追加一个问题:我先在的中断分配如下:
) E) M5 q, \2 w# c4:VPIF1 A0 `0 @2 A- `3 s+ x0 ]2 D- i6 x
5:LCD
: B3 ?5 K# f: p5 A) x. o; d- [
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44  Q+ }* [: `+ |3 ?2 x# g/ C! w
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
/ V7 F# {% ?% G( D+ T
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 09:56 , Processed in 0.039660 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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