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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7427|回复: 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?我现在实现代码如下:
2 e0 A& d/ l- M( C$ o! ]        //kEY GPIO set0 z" S: W, F! W7 ]( `8 F+ g
        GPIOBank0Pin1PinMuxSetup();
3 D7 ?  W2 o& S8 t  ]6 ~        GPIOBank0Pin2PinMuxSetup();
# w% s: n5 y4 M1 |0 r  W        GPIOBank6Pin8PinMuxSetup();' K3 @! A1 }' n, u) O/ m
        GPIOBank6Pin9PinMuxSetup();8 l9 @5 y7 P& m3 [
        GPIOBank6Pin10PinMuxSetup();' Q$ ~0 k, \2 i. a( H- C
        GPIOBank6Pin11PinMuxSetup();
6 z' y+ v$ g  V, O        GPIOBank8Pin12PinMuxSetup();" z( u" w$ F, [; ?7 F4 h
        GPIOBank8Pin14PinMuxSetup();) Q% f% G2 k8 f! X1 |' V$ a5 t
        GPIOBank8Pin15PinMuxSetup();; Y4 ^$ P0 |& R" X5 a8 Q1 L

: h0 V$ Z9 D; M" s    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
4 j4 ]# B( O% C; N# d8 ~8 I    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);. v6 v! M. P$ E9 g& w
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
/ }! M9 {; @! s  T& c9 k* S& W$ y    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);: i- o6 `* A: J. s3 }# m3 f
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
2 b8 w: F3 A8 h: p% A. _    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
% P; h* |; G" ]  K2 P4 @! f( b6 I    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
8 M+ e" Z4 b$ z) x    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);2 n/ G/ P$ a" Q7 b4 V/ {
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);5 T% `- }- L2 F) G$ Z  Q) G
0 c- C% o2 `  S, ^" ~. e
  k1 Q/ d, J3 V# [
        // 底板按键中断( }/ R! K9 E+ n: Y3 C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none: Q% m% v. T, L3 v/ c
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
: ?; q- Y% }* `6 g4 N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left/ T0 B# j) k! c3 U% q1 v+ x  {
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
+ V- q. v3 n$ m! b4 s4 z2 c    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down3 g; Z- a4 ^7 w+ X* |
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right* O6 Q; E, k' L& V1 Z3 }1 h5 f8 K8 w: m
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up0 V, X% h! P; H8 ]$ ]7 Q- f6 p
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
- B9 \4 w; u1 O- e- @0 P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm, r$ v3 c- L4 T! A+ h! X3 m, H
+ R; C( T1 l& {2 k! C
    // 使能 GPIO BANK 中断: r: D) X% X/ `' t7 k" R& G8 [# E& `' F
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO06 g( x( G, x9 o
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
& X* V& t) f+ [5 v5 M$ I$ t% e    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
- H& F' J0 U' l5 m9 V
) ]# \* o. ], Z# D% v5 e) c        // 注册中断服务函数# V6 u/ [* y, R) I" T
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
+ I6 J: P4 {1 K' A        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);. S- V6 V4 S1 P" c2 B% I
        IntEnable(C674X_MASK_INT6);
" h3 F; {2 ]2 ~; v
! G' w+ A( n4 k+ X+ d8 z        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
% I0 Z; z/ n2 ^        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
" Z+ N+ y- s8 F, _        IntEnable(C674X_MASK_INT7);
. O1 l) ^! Y" h& P! k; C# H6 d4 l/ f) I
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
7 I+ s7 E3 x" A. \$ q7 S        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);7 q+ r3 f+ t; _" U  f" g; E* F, m
        IntEnable(C674X_MASK_INT8);3 n% T% I* B; H" p6 }5 V
但是现在收不到中断,请问问题出在那里?谢谢
5 Y$ Y% M% U! W0 }. `8 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
0 Y9 [9 E. o. B9 @& K. K从你贴出来的代码看 应该是没有问题的
& t  F1 K' h2 q& t
还有其他要配置的地方吗?比如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
( j+ Y: y* i: C从你贴出来的代码看 应该是没有问题的

( D4 Q# u6 j5 M& V追加一个问题:我先在的中断分配如下:: s/ S. J' k2 C; }$ F8 Q( f
4:VPIF
% g3 R7 T! S: D* Q" O9 k  O5:LCD
! A8 l3 y# U: v7 C' b' u& D6:GPIO Bank0+ T/ Y" N/ K5 c& `4 j: p
7:GPIO Bank6
7 o9 k0 u7 T7 k8:GPIO Bank88 I; k+ C$ ?- U9 k
9:timer
( y/ l9 T5 a/ B/ H* Z5 a( N发现运行后,要么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 q6 j. g# T1 B. i* i1 S
追加一个问题:我先在的中断分配如下:
. M4 c! v  M7 J- I6 `4:VPIF3 l# b: k9 [2 a5 E( `, g3 a; J3 t
5:LCD
, Y4 J# H+ x3 _! B) F
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
6 X# o! G: Q& K1 B1 e不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

  _, ^) ~+ Z1 Q& h" j! @  G5 [恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 13:13 , Processed in 0.041839 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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