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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8111|回复: 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?我现在实现代码如下:' t& n) M$ m& `; V; j- O
        //kEY GPIO set$ E; `$ n* W/ z
        GPIOBank0Pin1PinMuxSetup();) D7 T  L3 K7 u5 ]6 {3 f1 x
        GPIOBank0Pin2PinMuxSetup();
% |6 V( V. w* C8 F0 \5 W  o        GPIOBank6Pin8PinMuxSetup();
# h; \% ?& m( A( D) ~4 v6 r: R& a        GPIOBank6Pin9PinMuxSetup();) h2 e  l4 j, z7 A; W: @9 V
        GPIOBank6Pin10PinMuxSetup();$ V8 y+ g1 x5 H1 k( r) z
        GPIOBank6Pin11PinMuxSetup();7 t& K% E+ s8 d* n+ n
        GPIOBank8Pin12PinMuxSetup();- J$ k% g, q: x7 t$ Q' C
        GPIOBank8Pin14PinMuxSetup();
4 f( W' K4 U( E1 O( @& l        GPIOBank8Pin15PinMuxSetup();
* ?; L: M* r0 F% `( `
* E5 F+ k% j9 d7 s5 F. S' K    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
. E( w0 M- f( X  i/ r    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);0 y( w5 r5 G0 s0 C& C( A% \) T/ u3 r
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);3 `8 Y/ t- ~; q$ V. k7 E
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
" E4 f0 U" S% y    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);) w! e2 F, l. c5 V( @/ R
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
- @. D  |4 X. W* b4 q! X) P    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);; S9 B- L3 F( n6 }1 h: d) C& u
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);1 W* Q6 Z1 X* ], M
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
% u- G' E: S, u5 f6 w6 d" H( R5 a& w

6 ?6 L- t. y2 v: Q9 A9 Q/ e" g6 u        // 底板按键中断
3 |5 _' I* w- Y    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
  v2 w0 j9 A2 w% i. V    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
1 B: L# g- @* y. T2 v/ X' g) j& J    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
) a3 ]: A( w9 \    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok' c3 e, h3 a5 @# u  I8 U4 N
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
5 m0 C% Y0 C( ]# k    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right; b: s0 v1 u; f6 ~0 f; K
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
2 c4 Z: |3 H" ^" G4 B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel: i2 K7 l! t6 l* y$ `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
- O; @2 W7 Q2 H5 G; b
3 A' d8 ^' c' S9 T" A  h    // 使能 GPIO BANK 中断
$ H; @2 d5 F+ }9 N/ G0 A0 e9 ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0  ?/ A; G6 l: L; m/ q+ m
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6  D$ T8 g2 I7 @" Y" J0 M0 _
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
+ p# B4 [) Z. V6 g% w; I
/ y9 t6 M. w: s( b        // 注册中断服务函数
. p) t) v4 {. V        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
) V4 }& R- Y1 b# j- z+ m8 F        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
: k* m2 m( |. A2 Z. c# p8 ~/ C        IntEnable(C674X_MASK_INT6);1 N! D6 Q& {* X; b3 p$ r
6 S7 @' L+ W- x0 n4 U* Y! V) P8 ^
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
% ^, h& K9 _9 ]        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);; ~) |6 G+ {# c& ]$ x* ~! g5 x
        IntEnable(C674X_MASK_INT7);1 n2 W! b  L& R

+ Z( r2 Z8 }' h        IntRegister(C674X_MASK_INT8, USER2KEYIsr);! ^% j5 z1 j$ X, a& k* U9 `  F
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
! @1 v+ g- D1 s        IntEnable(C674X_MASK_INT8);
5 ?8 `5 i: m. ?7 M4 o8 A但是现在收不到中断,请问问题出在那里?谢谢" P* @3 H$ O+ L6 N
分享到:  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
5 h8 v/ S2 d0 M$ H$ b从你贴出来的代码看 应该是没有问题的

' s. \( m) s) e. i2 W  I还有其他要配置的地方吗?比如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! O" Q/ r3 n% A2 y; f- d# F7 m
从你贴出来的代码看 应该是没有问题的
, N; h( u+ i# N: {7 x
追加一个问题:我先在的中断分配如下:
2 R- ~  R3 \# i8 r6 }4:VPIF
2 T& k3 H( [# y5:LCD' M; u$ u3 @, E* o( J5 I
6:GPIO Bank0
, u  a+ \4 H. W) _5 r$ k, R  V7:GPIO Bank67 F( S% e+ V% O0 l2 _
8:GPIO Bank84 W% K6 `/ s+ {* {$ B  @. f, [- B9 K
9:timer$ G; b# E$ a8 f
发现运行后,要么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 [8 H3 A" x# M+ R9 F0 o0 A8 U
追加一个问题:我先在的中断分配如下:
# m, |0 H# q8 J6 D$ u- g, D4:VPIF
: `4 p( k' I# y5:LCD

# y) G; h8 p# x# e; x2 ~: Q& u不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
9 o1 f& @, u) Z不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
8 y0 H( s+ l# {7 K
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 17:48 , Processed in 0.052389 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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