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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7879|回复: 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?我现在实现代码如下:' C% y8 p' G7 z( g
        //kEY GPIO set
( H9 n! Z" l  x        GPIOBank0Pin1PinMuxSetup();! i# l  L4 L( k- ^) l
        GPIOBank0Pin2PinMuxSetup();% Q. p7 ]% x* A. m: g$ ?/ n2 }
        GPIOBank6Pin8PinMuxSetup();7 Y  @* h! x& g6 h2 Q6 n
        GPIOBank6Pin9PinMuxSetup();
1 v' {) p6 R4 k        GPIOBank6Pin10PinMuxSetup();
* ?% F( E/ G4 }! A) k+ T# O        GPIOBank6Pin11PinMuxSetup();+ p( B7 y9 O$ H1 C: c& J, s
        GPIOBank8Pin12PinMuxSetup();
' a+ q2 l+ ?( A- n% `" w        GPIOBank8Pin14PinMuxSetup();
% Z( B  t: Y7 g' p2 T        GPIOBank8Pin15PinMuxSetup();
! r3 B: `/ z, t6 D7 d  H; a1 c8 D1 O  Q6 S
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
4 `( \: |$ f9 ]) @, v4 f/ g    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);# s+ ~: U" E9 t0 d" S
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);2 i' ^4 d/ o3 x  T2 }9 _) D
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);4 n6 Y3 z. ]0 \4 O
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);+ H- r% u2 v: v2 q( e; e
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);6 S) t! X' r- P% H( W
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);9 f3 q: |: Z8 H' k( H
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);( N4 B5 q' I' y, M0 u" ^) S
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);' o& e1 F7 y6 G5 n1 U3 |  I

4 y; u: g: [" i8 Y) v7 l1 o! K. b" J1 |& y9 L9 Q7 N6 p4 K0 ^
        // 底板按键中断- S; ~8 U. Z/ q' j+ v  {! L
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
7 q* r; F8 p3 d0 \    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none5 Z6 G- ^: ]6 D0 h/ {* E
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left: Y/ Z6 M5 U" ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok9 v5 v! P0 w. @2 o
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down& C% a1 A3 G+ h9 n9 O8 F
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
3 W. |. @% h3 \0 n" e# l0 C    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up, Z: a. s3 t; R  O3 \
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
  x4 I6 ~3 I& n) v+ c. H    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm( I0 o2 S' ~" m) d3 |6 J- j% h

( Z; \- f3 B1 `; Y+ \    // 使能 GPIO BANK 中断
3 n2 t2 e* M! @1 |2 r3 }    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
3 l0 r8 ^& u) k/ j    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6; @6 y, Y, o+ F2 K8 C3 ?! @: k
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
: P, U% I" ~( I! v( v* a$ e6 a; a
9 G1 y9 O3 j2 W* I6 u& X. x        // 注册中断服务函数
! J+ A% U& D6 s( s. ?: B. G        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
+ O7 V8 K- V3 ~+ x5 G+ [        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);8 f4 K- H; y5 }/ w& c# p
        IntEnable(C674X_MASK_INT6);- _5 K- @- E3 [  q2 g5 b" ]
* `* j9 f; X+ }( v6 X" Z
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);! i- F2 x# b1 u0 Q1 M5 s2 v, D
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);' y( s1 h# w6 w/ ~7 o/ A! g& N# D
        IntEnable(C674X_MASK_INT7);
2 g# n' v$ x9 G+ B
% k. g  P( c0 V* Z, Z        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
" l, S( z( P4 q3 C        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);- g7 g& |& L; ]% R
        IntEnable(C674X_MASK_INT8);
* R$ I. |( u* |4 C8 w但是现在收不到中断,请问问题出在那里?谢谢( `; Z7 C- a# d' J9 x6 X
分享到:  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
# |/ B( v- v. ~从你贴出来的代码看 应该是没有问题的

% i1 U% M1 G: @+ O0 w8 l还有其他要配置的地方吗?比如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
/ w  P3 D! K1 I  {从你贴出来的代码看 应该是没有问题的

6 t/ d7 \6 g& a5 j. K- ~1 Q追加一个问题:我先在的中断分配如下:
: a2 J- b, n) W, K4:VPIF
; i1 C: u/ q4 d$ \2 V$ G7 q8 ?5:LCD) b& B# j7 {/ L+ E7 d
6:GPIO Bank04 Q3 g1 Y( `6 [7 ~$ S5 O2 }
7:GPIO Bank6+ ~. P% c2 J3 X9 u2 c6 O
8:GPIO Bank8
2 n9 B) m9 `4 V8 B; Q+ [8 F1 @9:timer7 f# u) s3 f+ H* U6 g
发现运行后,要么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
( A1 a: q6 |' Y! d( z8 z: D  c追加一个问题:我先在的中断分配如下:  `. R' K; ^% j8 E
4:VPIF
7 c! @5 n# x( |- R5:LCD

9 \; h! Z3 w3 s# i, d- g不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
7 c2 h0 n- R+ E0 J6 W8 r' @不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

5 ?) K, }6 z9 p4 [1 T8 u3 x恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 19:03 , Processed in 0.044909 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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