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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7424|回复: 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?我现在实现代码如下:7 R' z; T# r! b, A2 S% U
        //kEY GPIO set9 w4 S% f0 \# u3 Z  c% O/ W
        GPIOBank0Pin1PinMuxSetup();) W: |, |+ `8 h+ K
        GPIOBank0Pin2PinMuxSetup();' \9 @6 u( {, b8 C, |
        GPIOBank6Pin8PinMuxSetup();8 ?( }1 y$ Y& C) p
        GPIOBank6Pin9PinMuxSetup();
4 t6 [1 J) K$ q, B1 J* E        GPIOBank6Pin10PinMuxSetup();# k4 _; L" w2 d6 J- I4 N- J, ?
        GPIOBank6Pin11PinMuxSetup();
2 n- [; r% D0 u0 ]        GPIOBank8Pin12PinMuxSetup();# T0 p1 Y- O7 [5 G4 P2 w
        GPIOBank8Pin14PinMuxSetup();2 x/ n0 E# ^/ f
        GPIOBank8Pin15PinMuxSetup();$ I9 f. D9 T4 {" P
5 G5 @' t* N: U7 P' n, G' x/ i) f( y
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);5 w4 L. d- l) `6 B& z
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
/ n  {) {) x% z. Z. C* X: `. D    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);3 P: Q7 X3 `1 m
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);, q8 _/ u8 J& P9 J" O
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);; n* B3 \: d3 W2 q9 K. I+ b9 E
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);, g) c4 ~4 l7 |; z. |0 |
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);8 b) v  ^( e2 i; H
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
# S, p, t* C+ P9 V7 L    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
! [* N( g8 a2 v2 |+ K- m2 [; C& Q$ x6 U+ D4 B3 k
& h4 t( f2 Q: k" m/ m+ ~9 e4 f
        // 底板按键中断
1 p( r' _9 A- F% ~6 r4 o0 R    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
+ K2 B  W: ?1 p' u1 C* ?) a    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
+ h* E; B) z; t  J2 ?1 q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left! ^9 E  }" F9 ]1 i+ j
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
. f- J1 X, B# o, i0 f# w    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
2 I4 C+ V, P- B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right. ~8 a1 v  k5 d" U& `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up+ w% O% f' m  _. U, g3 j- M
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
4 d0 w6 e9 U. s    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm" H4 w. l! {! ^4 h. v' H0 u. t( ?

1 p, k" C" x/ O, q( K0 n    // 使能 GPIO BANK 中断
, N7 }6 |( v+ G) V9 x% ^& ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
+ F) ^' s, T$ C) g6 x) q$ u    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6- p3 p) d* {( H) u, `/ F' ?
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
4 I& n& F; ?- f1 @/ o5 D, s  _3 p6 R' o7 w
        // 注册中断服务函数6 ?# Q8 Y7 L( H# D8 U
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
2 ]+ ]! P9 y1 _- s9 P3 h        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
6 C& t, Q* }/ Q1 R8 {+ ~% C' L5 [        IntEnable(C674X_MASK_INT6);9 `3 L0 V0 M  n' y( C

: U: J1 Q3 d# S5 C; _7 x" R6 p        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
! H/ T( p' I$ V* X" E2 k        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
% x1 [$ z, U5 F* H, F        IntEnable(C674X_MASK_INT7);
' G  ?5 b; T! y; Z. d. W
7 `8 T& i2 G! t+ _. |        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
$ z0 H% q0 ?, e        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
3 o- n) i, G( f1 `! e- I        IntEnable(C674X_MASK_INT8);
2 W* p1 J' i3 H3 r& |但是现在收不到中断,请问问题出在那里?谢谢
- B1 n. n8 p/ u* ?% _8 u  D
分享到:  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
) u1 M: z& v9 _从你贴出来的代码看 应该是没有问题的
9 Z6 ?# C7 [* B# ]+ o
还有其他要配置的地方吗?比如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. ]( ?1 l; ]% U9 {& ~/ |7 x  e4 S1 g
从你贴出来的代码看 应该是没有问题的
9 d1 j* s$ o9 L9 `  u
追加一个问题:我先在的中断分配如下:
) G2 Z. u2 \4 O9 u7 d9 _4 i4:VPIF; t: s/ e. b5 _! y
5:LCD
, t0 S4 U/ R2 K7 c; b8 Q% x. t( d6:GPIO Bank0
" ^  c" L! [) }4 S0 ^+ D& m7:GPIO Bank6
+ p8 s; p, R6 ?8:GPIO Bank89 I2 y  q4 V9 a3 x" Y
9:timer! c  C" Q- i# E7 J
发现运行后,要么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
0 q3 q: P/ q3 `追加一个问题:我先在的中断分配如下:
: b8 I' D$ |5 ]/ t1 U4:VPIF( y; `4 k, P; i: ~8 l7 n1 K
5:LCD

/ T0 d3 N; n6 Q% m6 V: w  [4 m不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:448 a. ?+ r$ X/ f
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
  P& }+ P7 D, r( F2 U3 |4 q( n
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 10:25 , Processed in 0.043369 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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