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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7365|回复: 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?我现在实现代码如下:  J' E5 Y( B3 ]7 m* a
        //kEY GPIO set
( |3 d4 G: m  f, s! x        GPIOBank0Pin1PinMuxSetup();
8 w7 F9 z2 _6 f: r. Z        GPIOBank0Pin2PinMuxSetup();" X1 d: l1 v) L( X( t$ i: M# ^2 g5 q
        GPIOBank6Pin8PinMuxSetup();
3 O/ K- Q% S4 B        GPIOBank6Pin9PinMuxSetup();
. B3 I, V( B; o8 ^- z$ B- L        GPIOBank6Pin10PinMuxSetup();
- z) P' u) M5 A* ?0 B        GPIOBank6Pin11PinMuxSetup();
$ |9 m' s: Y- P7 {2 o6 x        GPIOBank8Pin12PinMuxSetup();
  y0 z. i1 o/ @6 x& F        GPIOBank8Pin14PinMuxSetup();
3 g; I. v" D" P        GPIOBank8Pin15PinMuxSetup();
' c( ]! C. b; @, g- z9 l/ g; P$ W7 X
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);1 M8 C% X3 @8 o/ \. V
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);* I- X$ H" `" W: I+ Z% @/ p
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);6 V1 V6 E# a/ n! T1 v- T' M
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
; x! h7 V7 T1 R6 K/ M# Z9 Z    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
9 d5 }+ g( f  r' V- ~    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);* b# _- F$ u4 m$ }" W0 }" |* V+ C
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);! m: n8 Q- @3 l7 }& L, i% _. t( S
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
0 D$ v$ w( L0 L/ N' m! e! Z+ ?    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
. k) n: i2 B# e+ l2 Q& g( V! F+ d5 U9 J4 H9 l

# e' @. ~7 u$ x4 j        // 底板按键中断
) h% N- _! S+ w4 Q4 B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
) c+ a/ Q0 H7 ~, ]    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
5 B2 V/ O1 G& j+ Q/ Q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
' v& k5 J( s6 ^* u, N, x& D0 |: i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok4 `: N( _$ b0 m6 a5 i+ ]1 }# ^2 F
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
' |, r7 j$ r& u) t1 @* \! ^    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right4 `+ F( e4 R4 F: H$ r' h
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
7 g2 Y; d( k( c    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel+ i, k4 b. f& N! P
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm! o; u& x8 {% S$ C
; H3 i8 P/ ~% H
    // 使能 GPIO BANK 中断: ?3 |7 R& u: r4 R
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0, F# }2 V; [1 t) l
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
8 p% n% O) ?- e' i/ o' p# S    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8) e9 [: g; g2 ]4 w! Q

1 N; N1 T" ]$ W2 O  v, M        // 注册中断服务函数8 T7 b3 D' E% o+ V% e! ~
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);& a) h4 x+ u# R0 y5 L
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
0 f# b) S6 A; w1 D        IntEnable(C674X_MASK_INT6);) a: K# `( O' Y/ J% [, `/ @8 l! e# }$ H
; g! Y' Y2 {; o9 a. @3 K- D
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
; ]$ B" v! J" o  _" ?        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
! x0 x0 R% d' ]$ d1 s        IntEnable(C674X_MASK_INT7);
) z8 k2 Z5 B; g1 J) u/ ?
8 H/ ~+ E  g2 _        IntRegister(C674X_MASK_INT8, USER2KEYIsr);* B/ I- Y4 {3 U) g' ^- _
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);! p& N0 }1 Y7 S* y. b( L
        IntEnable(C674X_MASK_INT8);
2 p+ F6 L: w; t$ G+ E! V/ ~' @* t; V但是现在收不到中断,请问问题出在那里?谢谢
+ O2 g/ F. 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  z' Y8 P1 W7 m: Y
从你贴出来的代码看 应该是没有问题的

  A9 V, d2 S' w) a; n1 h还有其他要配置的地方吗?比如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, p5 F/ }$ g: t9 h
从你贴出来的代码看 应该是没有问题的

+ y/ j3 g: \/ n" i7 y( t追加一个问题:我先在的中断分配如下:
! x: x0 N  ?3 h: R7 u4:VPIF
% @9 Q2 K' d- \& A% {5 i$ r7 J( I5:LCD- }/ T. ]! ?* S: z  q2 Q# `
6:GPIO Bank0
+ C% g, F. n  Y+ {& k) w7:GPIO Bank6
+ l  c6 e* X) d+ I8:GPIO Bank81 S( n' G( B: y' ^7 [3 }  b( X
9:timer  h' q) M% X, p- f; l
发现运行后,要么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
6 U2 L0 A: s( ?- C! y追加一个问题:我先在的中断分配如下:0 \( F% o) t6 T5 F5 \3 G: j
4:VPIF
% J3 A' d3 |* e  r  [4 W/ C$ H5:LCD
) ^0 E) E/ M9 z. Z1 E: N( T
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44. N9 I& N9 K& P2 {- r- H7 w
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

& p& ^: X! i- p. V恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 03:13 , Processed in 0.047761 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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