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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6606|回复: 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?我现在实现代码如下:
. t- I% Z; [  e$ _6 F        //kEY GPIO set
# `7 ?4 @3 @0 c* y4 L        GPIOBank0Pin1PinMuxSetup();/ N9 b' {. R7 Q" `% o
        GPIOBank0Pin2PinMuxSetup();
6 N, g. K! [! F. f1 g* ~" b# p8 R        GPIOBank6Pin8PinMuxSetup();
4 H3 G+ y" z3 G1 ^        GPIOBank6Pin9PinMuxSetup();( U0 }; }6 z4 W; b
        GPIOBank6Pin10PinMuxSetup();
8 d: N. S9 G, `/ B        GPIOBank6Pin11PinMuxSetup();7 J$ w. B0 R3 j4 ?+ B* h
        GPIOBank8Pin12PinMuxSetup();
" e. Y% }* S# i. v; S, \% o1 X" Y+ n        GPIOBank8Pin14PinMuxSetup();
( `; Q  o: L! i  Q# O( T4 ]. ?        GPIOBank8Pin15PinMuxSetup();+ A( r& N( \: ~, f; R3 ?

, h4 J' Q) q* G4 E+ \# V    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
: u6 x9 B# @2 K4 U; X) {% D9 B    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
4 \  [. r; e: F7 {1 v" |- n    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);& ~5 b5 v% E  f! z; c. {  T
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);8 z; _3 G9 c- k! T3 V( ?, D
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
/ W3 F* U2 r/ V: ?% \. k) [    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
9 E  @; ]- O3 V    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);  ^, {* y% T4 g( m* A& ~- `5 q
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);$ }- y' `1 ~, {8 d6 N% p
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);5 {3 g; @( g& n
( x5 h6 j  f3 u& G2 Z0 ~& w: G7 `8 s

& g2 Y1 ~9 |8 g( W        // 底板按键中断
! M0 Z5 a# n+ \) n- r" F5 i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none/ L2 P! v- b2 Z! i0 m
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
1 S- u5 I. O. C8 a  M8 e    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left; @0 `* Q4 x2 ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
' U, d( D8 V1 F5 \, L    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
( K: E% b5 A9 W0 r" [+ ]% H    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right& M& U4 k1 ?4 O, u2 Q# }$ O
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up: }4 Z, L6 E  i: N9 w5 x7 D
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
# _0 o3 E0 G+ }4 U  `$ A    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm+ a' D8 D7 X3 D) u

2 V, A4 X( t- u# ~8 I  r    // 使能 GPIO BANK 中断, f2 y. e' V9 g$ Z
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO00 A3 p0 ], F3 _1 I& P- I
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
6 p+ f8 [, R) H2 V! n2 y  z2 {2 x# V    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
- u, ?5 X  |& j0 [! I6 i, l7 @* K) M* ?* r/ y
        // 注册中断服务函数" _( f# M6 M  T" k: n; g/ ?( K
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);. H+ [/ g4 d4 f
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);7 D' v- x9 \, q' u
        IntEnable(C674X_MASK_INT6);
1 L$ t# }! q/ D8 `  b: ]$ k0 B- t% ]4 d1 [) k3 _# h1 ^
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);+ y& v. h$ m# ~- }$ V9 z
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
4 I8 ?( \8 p) Q        IntEnable(C674X_MASK_INT7);) D) m: Y+ l( |* O4 e7 k, ]1 n5 l

5 C/ w# [7 v' h. K        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
+ P! \! T* a3 d        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
% x2 @5 P) }7 x        IntEnable(C674X_MASK_INT8);
# q/ p! r. ^% g* K. z但是现在收不到中断,请问问题出在那里?谢谢
( x/ j" U* i* f  t1 J+ k7 F9 o
分享到:  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* D; A5 z/ g$ C/ b, B* Z
从你贴出来的代码看 应该是没有问题的

' U4 i- }  R+ W7 B1 o0 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
! ^. V% F4 [2 D( F, g从你贴出来的代码看 应该是没有问题的
0 L" t" m1 D2 N$ Q
追加一个问题:我先在的中断分配如下:/ r- p. `6 x& a% X) Z' O" x
4:VPIF
8 t/ Z, _* g* N% j: D5:LCD
& X% R* p  T! ?$ r0 [2 Y1 a6:GPIO Bank0
- f( ^' x. `5 L  O7:GPIO Bank6- P& ^7 M0 g7 m6 Y( K' r1 z
8:GPIO Bank8
- z4 X: y% v. I3 F- I4 n2 ]9:timer
0 N) C! ]/ L9 \. }3 H0 {发现运行后,要么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
1 G9 Q8 a& T; T- K! _) }追加一个问题:我先在的中断分配如下:
% `8 ^8 m/ R  A9 H$ W' J$ y, u4:VPIF8 R: o6 {! m5 d: x
5:LCD

5 z. K. ]& n  I; G不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 20:28 , Processed in 0.041646 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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