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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8107|回复: 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?我现在实现代码如下:" X% z" T% \, o" Z% M3 W, U# F
        //kEY GPIO set- o) M& b5 Z: L- t0 n6 v
        GPIOBank0Pin1PinMuxSetup();
2 k) k, p% D0 [        GPIOBank0Pin2PinMuxSetup();
0 a& [5 U2 D0 Q7 C: b* P        GPIOBank6Pin8PinMuxSetup();
7 i- b: I6 d' b, F/ U        GPIOBank6Pin9PinMuxSetup();
8 M& n4 ]( V# I        GPIOBank6Pin10PinMuxSetup();0 v: t/ h$ N& ]/ y
        GPIOBank6Pin11PinMuxSetup();
  x( P4 J" q& B$ _. {. g" R        GPIOBank8Pin12PinMuxSetup();
" @- N: w6 t8 E% j+ T; n- p        GPIOBank8Pin14PinMuxSetup();
9 E) J- g* x9 e+ W) X        GPIOBank8Pin15PinMuxSetup();* T. {3 B! C- s7 @( h+ @6 y
! o9 O& ~* ]! S0 R# ^4 H
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);8 W: q! h; m: V
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);4 @8 d: ^+ m* T8 E, h. g3 Z/ d
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
- `* ~2 @# S" r; O2 A/ c4 p    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
  o8 i9 _9 t/ \3 v5 x    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
& d; O$ z$ Z3 V" H! t: I. \8 s    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);& |: ?3 E4 ~2 e1 {5 i7 t  A
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
) N# K  l% |9 Z5 V  N" e) P    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);( w. ~" }0 ~( O) I
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
/ e- F+ _  l3 h# r2 S4 w! G5 }* N. z& v: q

4 n% N! s' i9 n! }4 R! z) {1 w% n        // 底板按键中断0 t9 S2 d6 V$ p( W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none" l& {5 ^3 r6 E7 M
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
7 T# S5 e+ @4 @! P) E4 b, h0 V! I    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left! C" R  L, U5 y! \
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok/ _$ y  `4 v# Y+ l2 f0 P
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down' q9 X$ [- i, B6 ~" n0 A* r
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
- M0 p2 L6 G# s% {: n$ I+ J    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up2 r/ _$ O: v4 o  N# T! H7 G
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel9 K5 h9 G% w( N5 m. X* `" D2 X" J
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
  [6 o7 f6 z+ C. o* K6 F3 L
  p3 k3 ]8 M8 b) \9 i1 O    // 使能 GPIO BANK 中断
( n& Z0 K5 }+ c- y" a" J$ V% d+ }    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0- ^1 B+ d6 R2 e: \, x6 I
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO64 i3 W% n' k$ {) ]
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8- [  R& @: K1 H# H! h' e/ R! Y

% V! k0 ?; W( A, l# i; u# `. y) C        // 注册中断服务函数
& `7 v  `! B0 P        IntRegister(C674X_MASK_INT6, USER0KEYIsr);/ ]* N" C6 R+ {
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);8 b4 I9 G+ `8 r* H. H2 i, S
        IntEnable(C674X_MASK_INT6);8 r0 F" K1 ~: i1 r5 y
% k9 p. G/ L# `3 b7 ^& G
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
3 L5 X, ?' P0 S! b; D) b        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
8 e5 ^: b) R# i5 L, M( e        IntEnable(C674X_MASK_INT7);
3 T9 q7 H" t0 B
# L, D2 O) \/ {: k/ j4 s. N+ L5 p. g        IntRegister(C674X_MASK_INT8, USER2KEYIsr);3 Y' a7 D  i/ r8 j
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);, u  l+ Q3 Z; Q0 p! p  v( u
        IntEnable(C674X_MASK_INT8);' @3 T  W2 B0 ^9 V7 c8 c( H5 Q- {
但是现在收不到中断,请问问题出在那里?谢谢* L; E6 |- m- S/ G% \) J9 b
分享到:  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:428 l! ]# U7 ?/ b' P
从你贴出来的代码看 应该是没有问题的

! Y  P$ e/ e, U' M" K2 N" N1 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* C$ ]9 @# D4 c4 G: h
从你贴出来的代码看 应该是没有问题的

$ ~8 G: P4 Y4 A7 S/ x/ E5 B* n) m% U追加一个问题:我先在的中断分配如下:: V" O7 @: h" b' m4 }* l6 @
4:VPIF% e& B: \  }/ l- W# ~# w- b
5:LCD
/ z. v% k* B5 S  q5 }6:GPIO Bank0
% U6 P# R7 v3 e. Q: _& U7:GPIO Bank62 B4 R4 x6 c! z! f, M8 w# r* o
8:GPIO Bank8
6 e& r3 N6 S7 F" O9:timer1 d; @" r) ?- p
发现运行后,要么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:240 G0 P3 g* w* z
追加一个问题:我先在的中断分配如下:" g7 g+ e4 z7 {! {8 O* g
4:VPIF
) F( L' Q  c/ M& |5:LCD
, I* w' Z  g$ }  V
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
1 Z* v: ~% N* H% ^- u2 K  I% V0 r不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
+ i" p: r. \& I5 s4 P) x
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 14:37 , Processed in 0.043864 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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