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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7871|回复: 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?我现在实现代码如下:7 V" m8 Q1 p0 q4 k' S; Y
        //kEY GPIO set. j; e( v) \: x& Z& R% p* J7 [1 O; x& m
        GPIOBank0Pin1PinMuxSetup();
! k6 I' {2 V5 ^8 z6 r# l9 ^" g        GPIOBank0Pin2PinMuxSetup();) l- ]/ p& T1 ^5 j5 u% S) ?; W
        GPIOBank6Pin8PinMuxSetup();
" n' S7 k; F1 X        GPIOBank6Pin9PinMuxSetup();5 Q' s5 h/ |  \2 D
        GPIOBank6Pin10PinMuxSetup();
! A: t5 }# E% I- y        GPIOBank6Pin11PinMuxSetup();
# j7 Y& C! Z& m$ e        GPIOBank8Pin12PinMuxSetup();) N  }6 u, g& l
        GPIOBank8Pin14PinMuxSetup();9 e. w0 U3 c+ i; v. ]& }5 f
        GPIOBank8Pin15PinMuxSetup();
  @9 O. a3 \2 g' M' Y( a1 J" n5 u1 ~5 r
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
% O2 V; Z2 W" T, g: K7 a    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);3 w7 u4 |6 t2 f2 F6 O
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);8 N& h( Y# l/ ?. T5 w+ u$ ?
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);* H1 u9 {, P2 c4 O# n! Z
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
( S3 p. s. S7 c    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
* W1 g0 T' J% z( \" T    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
1 F$ B. @0 p6 q' e0 ^5 _$ Z    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);( B9 i, \2 B3 `- A+ u
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);( `# p0 ]1 K3 D

! D8 \/ c* K1 r5 ]1 j) }1 @6 i
# s9 d  c  Q# W' C% R% }( L        // 底板按键中断% J+ w5 X+ u; ~. Q& P$ g1 W; h" ]
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
- m* X. I0 @! E6 R    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
; |. B4 @: X# P5 t$ O4 }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left; ^: F, `& k5 T0 j, g
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
" l0 L1 M+ Q0 B$ d    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
# ~: B2 L+ |; X! W    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right* z# `9 v1 q  p7 D" i
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up, D7 n$ y5 x8 s5 |" |
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel2 f: l  _# r$ g9 D
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
2 x# q9 G6 @1 R
8 y, v* {. K5 ~0 j  Q. V    // 使能 GPIO BANK 中断9 |7 |8 M% W, U2 v$ v) z% w& I1 o1 t
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
1 h+ ^5 |/ \" B. R    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO68 d4 ~9 _8 y( B& T1 @/ U
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
0 j  `! x# g% b) `! a; T& @' e+ U  Q8 ]3 p8 Q( F# S
        // 注册中断服务函数
7 ^! D: p9 A# [+ z6 G  @3 ~- y& z        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
8 P( L0 {) y+ [# X- W% z2 z9 s        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
5 D9 I3 e& h1 ]) o( T% s; k        IntEnable(C674X_MASK_INT6);! f% e5 y) a, n1 V3 U2 [7 H5 p
* G% i# Y" |# u& i$ w7 P* m) b, s4 Q
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
2 T  l9 F7 U$ `# P5 l3 P7 O# v( G        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
0 @( ?* a- C. c$ J        IntEnable(C674X_MASK_INT7);
. V& J$ v1 D+ u/ y" C$ F" f4 x% R& P9 r( _" U; m' g
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);0 k0 n# z8 M. h& m
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);* T5 ?  d* y6 N# I) v4 g! y
        IntEnable(C674X_MASK_INT8);
" t- n, P0 N4 F- E. l但是现在收不到中断,请问问题出在那里?谢谢
: H7 i; E5 K' M8 [2 @4 ~% ^
分享到:  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
3 V! Z  k* S; ~; O3 e从你贴出来的代码看 应该是没有问题的
. j! y4 M+ o" a  {2 D
还有其他要配置的地方吗?比如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. b' ]7 `, J6 e' H
从你贴出来的代码看 应该是没有问题的

3 h: O2 o" F, R" b$ W追加一个问题:我先在的中断分配如下:
9 W# Z0 {. U7 K% L4 J3 ^1 s4:VPIF  x( y/ Q  x: J
5:LCD
$ r& V( r2 e  d6:GPIO Bank0$ ^; ]7 l$ h/ }7 H! j$ P9 t; v
7:GPIO Bank67 R" `9 J7 }) J# `. r0 X- M  ?1 ]& O
8:GPIO Bank8
, E. G- y# J0 P& ]7 x  T9:timer* ?& I0 I9 W5 i' ?/ s
发现运行后,要么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
! V' N/ ?7 W2 {追加一个问题:我先在的中断分配如下:
3 q  }" [6 N; q; ^) A5 M4:VPIF
5 a; K1 v- r- d6 T% H& x  l5:LCD
+ L% |, r8 T* A: B# {3 N# V
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
( j, I/ }5 i! M; i5 [9 c% b不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

& N! M+ }2 D- l  Q9 A恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 23:19 , Processed in 0.043361 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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