OMAPL138中断问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8108|回复: 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?我现在实现代码如下:2 i! R7 r, X$ z8 A; @7 d3 x
        //kEY GPIO set
- H# T% N* M/ n! C1 a' w) P3 o* w        GPIOBank0Pin1PinMuxSetup();4 \( H" G# m8 }, I/ u
        GPIOBank0Pin2PinMuxSetup();4 C; J6 O" L( ]$ O
        GPIOBank6Pin8PinMuxSetup();
4 d) o0 \2 _  n) p        GPIOBank6Pin9PinMuxSetup();
. Y* o* R. _5 Y- c, p        GPIOBank6Pin10PinMuxSetup();, G' o6 O" U: x) M. W
        GPIOBank6Pin11PinMuxSetup();
  h) b" O* `, k& w& h( |        GPIOBank8Pin12PinMuxSetup();; _# D  y) X6 o" L* }& P' t
        GPIOBank8Pin14PinMuxSetup();% N# C# g. x2 j7 L
        GPIOBank8Pin15PinMuxSetup();
" V# j+ }4 N" |( h9 b
8 V: V4 }& r4 V' [0 j9 ~    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);& f/ R* h6 Y1 i8 M' D$ c
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);  r( L( @. C9 U4 l; G3 A# V
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);  X0 \. B5 @% c
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);3 b6 H, p. \1 k* h
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
% y4 ?3 J  T7 i6 h    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
8 W. f' e& T% r) p6 M7 k1 Y( W    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);  Q" k- n3 K2 U9 ~: G% M8 p$ i$ c
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
! g0 d+ U$ }0 n. ^6 ?3 R  E    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
, S# c3 `" l5 F: C
. ~0 i3 y- r: @. E, u$ R& o3 u* T6 i1 ^4 N) P
        // 底板按键中断/ S: _# C, Q; G" Q# w7 j8 E7 c
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
/ l) z: ?- ~8 x* P; X! a1 {4 `/ V    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none8 J) b; v: _' C6 B1 N) H
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left/ V2 y9 m" ]0 q4 f4 @4 e. h
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok1 M6 z6 q9 G5 f' B% u. e3 C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down2 I; [9 Z5 ~- W8 m0 W8 B" I
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
0 N) @. l3 G0 c9 z2 |6 @" l    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up  X3 }/ L( O* a$ H2 h/ h
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel& X1 ^, g& _% [8 u/ m
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
) a% f; T5 w# ^* z$ o
7 `8 ^5 ?  B- J2 E! d    // 使能 GPIO BANK 中断
; M4 t  L; H- T4 I& j6 }4 v1 d' E    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
2 H6 ]4 `; V' I/ s0 A& [5 h    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO62 F$ _; K7 M" Y5 F" `
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
* T9 |# y* B8 v1 M4 w3 Q/ F5 E! Q% ^0 R2 y- A1 p
        // 注册中断服务函数
& o: ?0 m& p/ K        IntRegister(C674X_MASK_INT6, USER0KEYIsr);' w, H. |8 |" Y- I# H3 \. t3 h
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
, _' E& d/ U2 {' V* m) e& O        IntEnable(C674X_MASK_INT6);8 D+ y0 R% R) V# ]
7 h( d( ]& P3 K
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
5 A/ V- f  n  ]. a/ F        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);  E$ S" ~9 @: [1 s2 U! b* h) W
        IntEnable(C674X_MASK_INT7);
" z1 g* ~1 d( J$ c
1 }) P- O5 w4 u5 I0 K4 J        IntRegister(C674X_MASK_INT8, USER2KEYIsr);6 S' P3 }9 h  l( U
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);" z, Q: `9 Y4 J- i9 E
        IntEnable(C674X_MASK_INT8);
; o; R* \. @% |0 {4 u2 c但是现在收不到中断,请问问题出在那里?谢谢$ [% y3 `" j% I) w2 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) J* T& N! P4 Q1 U( [% O
从你贴出来的代码看 应该是没有问题的

' J" z6 w3 n& U还有其他要配置的地方吗?比如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" `5 p8 i6 W7 `9 v6 w
从你贴出来的代码看 应该是没有问题的

1 `2 H) m& _- S' x4 x追加一个问题:我先在的中断分配如下:4 x# e% b$ S; f9 A
4:VPIF
& ~  g  ^7 ^* e# S0 |& k& S3 ~5:LCD
4 H  X( _( p, z6:GPIO Bank0
1 \5 U# H- V9 ]+ |7:GPIO Bank6
9 H; j' W" Y+ B8:GPIO Bank8
: T( ^. E1 l" m9:timer
. J0 k" a7 e( S3 K! g4 `发现运行后,要么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
7 Q8 _6 E# ~+ X" e# Z3 A追加一个问题:我先在的中断分配如下:2 ~$ ~3 k1 K4 U9 x
4:VPIF
: B$ b# Q  Z0 h, W2 R* L7 }5:LCD

, J/ J0 w  \5 w, m% W) C% l/ D) [不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
0 R7 \$ ^5 n2 ^+ p. \0 a不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

" |% S) @, a& O恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-16 16:05 , Processed in 0.050633 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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