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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6568|回复: 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?我现在实现代码如下:" A" d& b* u" G* G1 `
        //kEY GPIO set3 p2 o+ [7 ~; v
        GPIOBank0Pin1PinMuxSetup();9 k+ i" h( w4 o0 D8 R, h
        GPIOBank0Pin2PinMuxSetup();
7 j9 h3 M, ~: d- F) W        GPIOBank6Pin8PinMuxSetup();' Y& F' {) r* @) X) M! {8 E/ M
        GPIOBank6Pin9PinMuxSetup();
& G1 {7 k$ w! X% M+ r. \3 _        GPIOBank6Pin10PinMuxSetup();
  p# e8 u* d' j1 C        GPIOBank6Pin11PinMuxSetup();4 N1 ~! ~: _, ]6 \9 I: l
        GPIOBank8Pin12PinMuxSetup();0 K, O- d* g! U! c- N2 J2 i8 [
        GPIOBank8Pin14PinMuxSetup();
, v) j9 A! @2 P+ M, X% b        GPIOBank8Pin15PinMuxSetup();8 Z2 L: K$ W* p

# @" v/ W& u+ u" W2 M* @5 d    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);7 Q) S' g$ b1 e, P2 h) ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
2 h$ g- T, u- s8 E* q$ y, V    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);" I$ ~6 e9 p9 ]% c
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
9 k0 W# N) s1 o1 J5 Z4 O& s5 v  N& p) j    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
+ z2 J1 B! B6 ?5 `2 T: R    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
$ ?0 \; N7 l2 w4 y1 y) k    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
' W) O0 ^! Z6 V( n/ ]7 Y6 u    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
/ U; ]9 i. b9 j  s    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
+ v: C" y. ~8 B( ]0 x% }5 d
' m  x. R3 x3 V0 x5 |( R1 u$ v
        // 底板按键中断9 N' V1 _! Q( {- C' Z6 w! W* B
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
* |; R7 P  ^2 b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none4 I: L7 m5 `# W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
% g% A+ v+ q( X4 S8 A6 y    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok) W: c8 e2 j7 P
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
1 y$ z: J4 e  l8 q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right! M8 n1 h% l. {
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up0 A9 |9 h9 E" x! }! s- D6 D% W, p( g" w
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel5 i- J5 m2 f( h) ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
. @7 x; Q9 F, k6 Y$ T; F. n8 U2 A' y) f, f+ r& Y
    // 使能 GPIO BANK 中断' }* }6 y! n2 h  Y8 ~
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO05 V7 ~% L* e* m+ B2 U
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6) K1 R% v8 P' G- q# D
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8* c0 m+ n; ?) \. D
9 |2 t7 x( X( i9 Z+ S' P) A3 E0 v
        // 注册中断服务函数
/ |' o% e/ M4 q% C  z        IntRegister(C674X_MASK_INT6, USER0KEYIsr);* C- C3 ]5 U9 w5 T5 z7 U
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
$ F1 l% L. I1 I( i' B) d0 |        IntEnable(C674X_MASK_INT6);9 L2 s- I2 }+ O6 b

9 ]" Q/ C7 D! a! @        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
2 T! k( s5 m) `$ t, O        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
, u( a8 y& d; e8 s, E7 R% r        IntEnable(C674X_MASK_INT7);1 K  [; i' U1 \8 G& {2 ~, m. \" C% f' u4 M
- X6 z+ I+ |# q) B& F& I: A
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
5 t- n2 c+ v  ]) p0 g  Z, ~% W        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);- q! x  U  d7 y' B! N
        IntEnable(C674X_MASK_INT8);5 {6 M) _/ g& K7 p4 h. Q
但是现在收不到中断,请问问题出在那里?谢谢
6 x# _1 O, Z  j/ {* ]5 Q
分享到:  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
; M& m* V5 P  H( [/ o$ M从你贴出来的代码看 应该是没有问题的
; u& g2 R5 N( A% U* C( o+ q
还有其他要配置的地方吗?比如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
6 N; P$ n, t4 C& P从你贴出来的代码看 应该是没有问题的

! G  ?' z! G# B" I5 j5 `" `追加一个问题:我先在的中断分配如下:
7 x2 W1 v; [0 B; E9 i5 a& {! m4:VPIF
8 \" j9 b3 Y( i* S( \( E5:LCD6 g5 l) P! [6 d: i! r
6:GPIO Bank0
3 s2 Y9 M: b" _& U1 ?) C7:GPIO Bank6
: D1 F, ]; O4 F8 ^+ m3 D* R" ~2 W8:GPIO Bank8# S" f3 D( i/ W" S8 a  B
9:timer
8 |! ]5 ]- o9 B8 V2 ?7 h发现运行后,要么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
" _+ `# A6 o5 J# V% U+ m$ u追加一个问题:我先在的中断分配如下:& l( @" e: E: m" m; S# A: ^# A  |! {7 \6 S( Y
4:VPIF" e# ^  r5 o4 V$ |0 m
5:LCD
1 G8 V/ J/ c5 ], B4 @) D
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
* b4 f' A- f$ h$ b' l* L不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
$ o8 `* K. d& q% i8 D7 @
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 12:23 , Processed in 0.041327 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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