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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7565|回复: 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?我现在实现代码如下:3 g  Q- [' O: t7 p
        //kEY GPIO set
7 Z& E% l* I$ q( v+ f& H! J        GPIOBank0Pin1PinMuxSetup();0 J) x: L! x. r/ A8 W
        GPIOBank0Pin2PinMuxSetup();
* U& y- b# m/ @; G  u. W; N6 @        GPIOBank6Pin8PinMuxSetup();
/ c9 T8 l7 N& t        GPIOBank6Pin9PinMuxSetup();4 \+ {+ t; R6 o' D( F. i) z% ]
        GPIOBank6Pin10PinMuxSetup();
/ ?) K+ ]3 H# ^' {        GPIOBank6Pin11PinMuxSetup();; R$ h. ?" M) p. p1 l" n
        GPIOBank8Pin12PinMuxSetup();+ u  w4 O% R/ Y7 X% j
        GPIOBank8Pin14PinMuxSetup();
9 {; [% h4 X- y& C' A  m& ]5 M4 E        GPIOBank8Pin15PinMuxSetup();4 s& X. I7 Q: G8 U  B+ I+ ]
7 E, ]0 t0 M0 n9 a
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);3 d- w' x! k$ c; }
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
% [& h; Z# T2 T! z& T" o    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);. S5 y4 }" V0 V# }+ H. }
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
( W2 k2 c) X% @$ h: |    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
7 K; z; Z& Q0 L% |    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
# a$ q# G: G! W' I  A6 w    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
% |9 k& Q2 z# ?% M7 l+ y    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);2 [- R2 u; O4 O0 f& Y3 P9 V
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
( k; {1 d  |% p7 {- N
2 x) Z9 j; y6 ~$ f" x
% }1 ?8 k9 K% y" v" a' e- X        // 底板按键中断
  P: `2 s% W! r8 V$ m) k2 }2 _# P% w    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
6 q* h! @! {+ a3 b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
7 E- p, \! @' x    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left3 c* X$ Q8 b! t+ n
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
; h( s+ f2 g' Q# R# O# q; `2 }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down1 X2 U) @" }1 P4 C. i
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
0 m0 R4 C$ O4 L& T$ U2 E" M    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
2 W) A0 M4 ~+ y4 s& Q# P( G0 X    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel/ ~4 C" F- @8 q% ?6 z# ?1 L
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm. Y+ e  i8 f+ q  f7 W+ k) U$ I
4 T/ E! B* H8 @9 {) L5 T
    // 使能 GPIO BANK 中断
2 W: V5 m. D  n6 m! ?    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
5 }, F* N4 T; U! ^    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6  K  I* G) {8 n6 Z5 [
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
' x& {* w' E* w3 P0 @% ]* D/ z4 L2 s' H$ e+ z7 F
        // 注册中断服务函数
  H: K5 y5 Z  I( Y, o( t4 B# ]        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
# Z* U- \  v" n% I        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
2 m  H; B8 z& z) {+ k5 u        IntEnable(C674X_MASK_INT6);
% I$ U0 ]( o5 H  w  ^: a0 y, x3 i) m0 z. c2 }
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);7 w& t6 w& s! M& o' Z) [2 }; Z1 |
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
9 x& q3 U0 V) J5 Y7 j1 T        IntEnable(C674X_MASK_INT7);4 `" F$ g8 W2 m) l* A

% [7 D" l' R- F3 i4 X) J        IntRegister(C674X_MASK_INT8, USER2KEYIsr);" w; o' Q0 A$ m, M. i
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
5 B" y4 W, R! u7 E" q% u  F        IntEnable(C674X_MASK_INT8);; g, O8 ?9 {& D6 v2 _1 }1 W# Z
但是现在收不到中断,请问问题出在那里?谢谢+ i: V( V# E7 [
分享到:  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:424 e0 S0 Y' Z+ Q0 ^2 M- G
从你贴出来的代码看 应该是没有问题的

9 ]: S8 p8 R# R1 N还有其他要配置的地方吗?比如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
+ k7 l! ]+ J; H9 i$ Y从你贴出来的代码看 应该是没有问题的
8 N5 V  d1 P8 [, N  t' x0 o; Y( x7 v
追加一个问题:我先在的中断分配如下:
  ?/ ^5 V1 m& Q0 v) F/ ]4:VPIF
* [- a  g: R9 d4 {& \; |5:LCD
1 P5 P, o- L! `1 I5 ?! ?6:GPIO Bank0; e# V- z2 A; j% ]
7:GPIO Bank6# u4 q, {+ I& t! e
8:GPIO Bank85 ^: x& K1 u0 h- `4 s* A; R8 Z" w
9:timer+ }+ W- o- b+ q: X. f. 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
. E2 y- z1 `8 D( q7 h* E追加一个问题:我先在的中断分配如下:$ C* L$ j# N/ |- u
4:VPIF/ L! E( y# s# O9 Q6 _$ A* W
5:LCD

' y3 f/ |0 Z* N- R( y2 t不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44* X) T; `; a2 b( q2 x" A" M8 A
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
6 L0 ]+ ]/ Y- S5 y
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-19 12:51 , Processed in 0.041027 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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