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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6542|回复: 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?我现在实现代码如下:. x" T; f$ o6 K/ B7 r
        //kEY GPIO set
6 }9 \- ^) `! O3 B( z0 g1 i: q        GPIOBank0Pin1PinMuxSetup();
: {, j7 t# }/ B' P9 F7 c7 |        GPIOBank0Pin2PinMuxSetup();; K% o$ U  G9 S, @  @
        GPIOBank6Pin8PinMuxSetup();
, l: @! p* |0 p3 ~6 }        GPIOBank6Pin9PinMuxSetup();9 D, J. u3 `6 z  o
        GPIOBank6Pin10PinMuxSetup();7 T( r3 z" M% n
        GPIOBank6Pin11PinMuxSetup();* F5 P: M8 K% Q. Z
        GPIOBank8Pin12PinMuxSetup();
6 O$ R/ a5 S7 z& H  s1 z! a( D1 b4 T- g3 Y        GPIOBank8Pin14PinMuxSetup();
. I. S+ ?) I* S- R3 S6 O1 f        GPIOBank8Pin15PinMuxSetup();
4 ?: }& m- h3 ~2 X4 }( ]1 }9 N1 p) n& ]- H' e  J" r8 C
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);, g% ~0 @+ ?3 Q( b+ N+ h
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);. O& T0 x3 S& Z+ j
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);7 N4 Z0 f( Z- t3 p
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);! j1 S  ^5 ?; _' t$ g( L
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
1 j9 F5 u* f( ~. T' x0 H9 [1 ]8 \* m& M    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);3 {; c% Q2 A! Y5 o
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
  ?2 G  M0 o. G9 T' W    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
- ~. I7 W/ q$ S1 [. T2 Z    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
+ J. w  \4 @* d1 N) a1 P
% i# l0 E( {+ ~2 x$ h" E, Y/ B7 Q% i1 X4 R* N' p0 x
        // 底板按键中断
6 I$ n& C* {! q. A" g. U8 }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
6 m( I" Z: Z& L9 u5 Q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none6 f( ~5 g( b% b
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
# U- Y+ t) ]$ l$ Q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok, P8 d, p- c8 B1 Y* r5 Q7 S" [
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
7 Y7 f1 U; `# Q2 c/ J# D/ V. K    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
5 o9 g: b; u* s8 L7 b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
  ^7 {6 d2 l4 h6 }  L+ C1 }5 z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel+ X2 ^& g  f% k3 _* U
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
5 K. Q. H+ h  a8 F- Z/ b8 I  U0 J
    // 使能 GPIO BANK 中断
$ c- T- k/ S3 L4 F5 d& Q    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0: w- m& L$ j% w! |
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6  l8 Z; `9 b3 B8 ]- l
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
* o% [- I0 e( M& y' f) x/ A6 i
3 D" U* E9 J5 y        // 注册中断服务函数$ K/ P4 S  K) f! X
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);6 Q  R- `+ c5 F4 D2 v
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);; a* O% \! ?8 u: m
        IntEnable(C674X_MASK_INT6);
* e0 {3 }# v" z
/ e2 F% U) L: x4 C' D        IntRegister(C674X_MASK_INT7, USER1KEYIsr);2 M) T- J$ B1 K2 W" P: Q
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);9 m: J  a3 D6 J
        IntEnable(C674X_MASK_INT7);
  w7 |; [, L& W! n0 g+ ^* _$ T
, T; b5 {/ a, ]        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
$ y! M/ q7 `+ a        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
& E% C% T  Z( q# H        IntEnable(C674X_MASK_INT8);
1 [) h& r3 s/ x- o1 ]* V2 E但是现在收不到中断,请问问题出在那里?谢谢
  d$ v( B! U' N; x! I4 r
分享到:  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
. w( S; I  O9 m从你贴出来的代码看 应该是没有问题的
$ C: N- d" y+ q/ _
还有其他要配置的地方吗?比如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
6 h; W5 I( n1 p! m. s( T; [从你贴出来的代码看 应该是没有问题的
" _4 W6 D6 S$ v( t
追加一个问题:我先在的中断分配如下:) Y3 d' b0 k# n- {4 F9 d
4:VPIF
1 s7 H3 p1 H& b; s0 W/ k& L1 p5:LCD
2 ^2 N1 i9 }6 \( q- L+ G! M6:GPIO Bank0& r5 b6 _6 S# s% c- r) A' J
7:GPIO Bank64 v# x, f6 P' @# }0 U9 g0 S
8:GPIO Bank8
% G. A, u& z9 h, A' m, K9:timer
8 |3 N( {! d1 a7 E! B发现运行后,要么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
; B* f6 U9 f, t3 Q! F* {6 r; j追加一个问题:我先在的中断分配如下:
$ m; L6 k# e" L% }5 j, d% R, G/ ]4:VPIF3 S/ e6 Q: e9 E4 S4 N
5:LCD
' _6 J5 p7 T7 a/ ]
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
. y" B3 M( Z- w4 X4 f# S不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
; p2 p( k" |6 w5 j& b1 V) l6 K
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 23:07 , Processed in 0.038232 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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