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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7933|回复: 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?我现在实现代码如下:( w4 u$ Q4 Z6 I  }
        //kEY GPIO set
3 Z+ n' W  s9 H: \2 J% Q        GPIOBank0Pin1PinMuxSetup();
4 o- |3 ]/ v, h* U  `9 o* d; H# ^& {! g        GPIOBank0Pin2PinMuxSetup();
+ @3 r+ }% B1 |8 F        GPIOBank6Pin8PinMuxSetup();7 O' Q% U2 R7 `) o7 j& b4 V$ U3 i% |
        GPIOBank6Pin9PinMuxSetup();+ A9 S# ~5 W$ \& j" C& D% J9 x
        GPIOBank6Pin10PinMuxSetup();7 b4 ]  V3 r. x4 W: n3 P( ?
        GPIOBank6Pin11PinMuxSetup();
$ o0 R7 u, O# @. J" {% d! `: A        GPIOBank8Pin12PinMuxSetup();3 X+ l9 b& b4 I$ l1 ~
        GPIOBank8Pin14PinMuxSetup();* c% F/ _' i$ D7 @5 g2 s$ n. R# q) `! Q
        GPIOBank8Pin15PinMuxSetup();( R' i4 ]: k1 |' t$ S$ J, \
; ~0 [; t6 Y: o4 b
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);' p* B) d8 _  H- c. B$ \7 D
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);% U# D3 S& M/ E) q+ P: R
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
: g0 K3 g; B( L/ g8 W" o  D4 ~    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);- ?: G& ^+ M: P& I" U1 i! q
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
- o) z6 t& R4 x+ J2 z    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
/ [- V, H; a# b    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
# M1 I9 ^. c; T$ {# r! S5 \    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
: v0 T7 Y! g- }* x    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
, H0 H: t  X2 G8 J- D5 c
; T+ d$ g/ b/ ^$ z! z+ R% T% `  C
! R( F1 J) ]! G9 H) C' W! F8 n        // 底板按键中断8 ]2 `" t( v: Z" f: h+ Q" Y8 S
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none6 _" w' g+ Y( M% v* w
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none5 Q) U: @0 x/ Y; ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
+ J8 I1 ]0 s; o' G    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 Y8 {! g5 x8 c+ {: R
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down* T1 B0 B; z. q- K) X# d: z2 h. ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right* ~* Q# U+ U! J9 h. [. |
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up2 ~0 G! L6 e+ |' G) j/ G6 c# t
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
" \5 G6 Z  S+ @6 f; z* S    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm) b, v7 t/ H# I! l! S
. D7 C6 M& _5 v+ l1 E% [# w1 I
    // 使能 GPIO BANK 中断
; G; G. U+ L8 ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
* j% {6 l8 k& n- ?3 O    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6) y6 a+ x* n, l9 d. R
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8* z' L1 t. h' j+ m7 `1 A
2 p) ?' V- ?8 E5 z0 l1 Y3 D
        // 注册中断服务函数( a, V4 S, ]. W0 E/ h( Y% H. H
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
: \" `/ r. n/ K) j! J; O        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
4 d; g- n: S; M0 b* }9 q        IntEnable(C674X_MASK_INT6);
; y4 |+ A1 p6 i# I, e5 R: d- t4 [
* f7 {/ t* T4 ~8 ~9 @        IntRegister(C674X_MASK_INT7, USER1KEYIsr);% w& l* P2 `0 `! ^& _$ K7 W7 X
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
, e$ G3 E4 F5 Q# n8 \$ C4 T( }        IntEnable(C674X_MASK_INT7);
! Y: x: T+ l$ u0 L6 j4 y/ S  v( ?$ ^% c4 M( b# U1 n8 ^0 l) D
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);3 R" O5 m  K+ F: U
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);, d* _) M; Y9 B9 i
        IntEnable(C674X_MASK_INT8);
  b8 B  m) ^" p5 Z但是现在收不到中断,请问问题出在那里?谢谢* J0 Q7 m. x0 m6 i6 K  @5 r
分享到:  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
8 T5 P( ?4 o  r# {" u$ N从你贴出来的代码看 应该是没有问题的

; E( ^$ g0 }" H1 z& {" S还有其他要配置的地方吗?比如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:428 x  l1 \% E- Q+ Y) N- S/ M
从你贴出来的代码看 应该是没有问题的

& m9 z& g$ ?' ?# l$ I% ]) L2 n8 c追加一个问题:我先在的中断分配如下:
) p' ^# l+ z) o6 c3 }- Y, B" k4:VPIF
, u$ H. ]# b1 C5:LCD0 A  i; t7 X3 a6 l! \3 e
6:GPIO Bank0
4 h+ b, T$ g" d7:GPIO Bank6
3 I3 p9 L, N, @2 a, t# A) d8 n8:GPIO Bank8
4 x- C6 x( l+ `9:timer
$ {$ I4 F1 t; k发现运行后,要么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
( D% M) w3 I$ P) L% R2 [* @" C追加一个问题:我先在的中断分配如下:
$ M( _0 Q5 s/ ]% ?1 m4:VPIF: p# H$ l4 H8 H9 p, A) Q6 G6 V9 \; V2 X
5:LCD

# f  k3 o% w# L7 D- ^1 M不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44! t6 R0 ^1 q* f8 ^
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
6 J2 O( v. z, G" n
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 20:48 , Processed in 0.040511 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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