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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7778|回复: 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?我现在实现代码如下:/ h. `7 b: ], _/ a3 ^& J$ f
        //kEY GPIO set7 e% o& N9 q8 t7 `6 a+ U
        GPIOBank0Pin1PinMuxSetup();
% c- c, X0 q, o9 W+ o        GPIOBank0Pin2PinMuxSetup();' g# ~2 c' i& Y2 L9 s# `
        GPIOBank6Pin8PinMuxSetup();% C6 c/ O+ H9 t# K0 }8 D
        GPIOBank6Pin9PinMuxSetup();/ Y; T8 m" v0 g
        GPIOBank6Pin10PinMuxSetup();
% |! P$ E- \2 Q9 C( ~$ ^, J        GPIOBank6Pin11PinMuxSetup();
) A/ Y, F5 @, ?, u' l# J4 b        GPIOBank8Pin12PinMuxSetup();
: g3 m' j" i" v7 N  o) p% F        GPIOBank8Pin14PinMuxSetup();5 e+ _. Z! y9 u# S" ~1 W
        GPIOBank8Pin15PinMuxSetup();
7 d- ^( j) m" t& p1 G5 I
0 {6 {- v6 w0 a3 K* Y0 F+ Y. u8 C! z    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);9 s4 N5 t, M- u: W* S% c8 U
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);5 ^3 u! _# C, h
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);9 g8 w/ z$ U/ l9 r- I
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);; J2 y( k. {# c! u) T6 L
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
) w: q% w/ z) ]5 x    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
1 @/ {  ]) J5 o* Z7 F& m5 i    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);# \4 ?  l% P7 l- W$ d+ t
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
; Y+ M0 Z% R  I6 k% W1 B# c2 u    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
7 Q$ {/ \7 f/ `. G6 Z3 n) c
7 m; \( t2 g& Y0 `; |1 P9 C$ L, |" v4 _4 D4 O
        // 底板按键中断
# i' k7 m4 F+ ^    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
3 ?. q& k! H  g- [+ i: P0 X    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
+ t- \. ?4 c: z' e0 C# Y* G    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left. `2 J" p! ?+ ^3 `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok+ j1 u/ d8 Z1 |; m6 [0 s
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
( Q: `9 I, {$ g    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
/ a' @  ^5 f) j: Q! p3 P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
* }, f# d( c( l    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
4 k. V! T& v6 s% a    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm* c4 ~1 {9 ?5 ]9 X

/ b3 N+ E( s- l    // 使能 GPIO BANK 中断
4 M# O  Y- V' W) H$ `9 g: k    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0" C' q+ s  F0 _/ W8 l: ?5 N
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
' V/ n7 j" v( a9 U4 f3 f    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO87 g: A( R7 Q1 K
: j8 Y1 v0 k, D- f! T  @
        // 注册中断服务函数
  P7 b& W+ P; k1 x: o        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
1 ]  G( o; A. p7 \        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);0 n0 z; v$ `5 m' g. f! a
        IntEnable(C674X_MASK_INT6);2 D2 y* A, f1 k0 |# o

, C- i- C. |# `( ^5 J5 T        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
9 P% U  Z: T' H        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
" S9 O% g# h' \, c        IntEnable(C674X_MASK_INT7);: X' M) e  x+ h9 l' \# J5 o

" T; {( J  b  {, I        IntRegister(C674X_MASK_INT8, USER2KEYIsr);1 N& `/ D- N' N5 B% O
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);5 M: v5 e9 B4 o4 e2 Y- o
        IntEnable(C674X_MASK_INT8);
5 a4 Q5 p& Z( O. o但是现在收不到中断,请问问题出在那里?谢谢" [0 O1 k5 S% j$ ]1 P
分享到:  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
6 P0 t1 N( x8 k+ ~2 S' H/ D从你贴出来的代码看 应该是没有问题的

& r5 l+ H, ?: c! z还有其他要配置的地方吗?比如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+ E/ p3 X7 n/ T2 n' \2 A! D7 o9 F
从你贴出来的代码看 应该是没有问题的
: I4 C7 D! ]1 O% w$ n% z; j
追加一个问题:我先在的中断分配如下:
4 Y+ v0 I+ ~. {: z% F/ Q4:VPIF- d7 |" K# k5 n
5:LCD
5 l$ G; ^4 @% q6:GPIO Bank0
1 R2 l) P1 u- j7:GPIO Bank6
' f$ |0 Q, ]+ V$ t3 i8:GPIO Bank89 E: C& f2 y' s2 M. v; W3 _0 ]; ~
9:timer
4 q! c" }" S2 `- f8 l发现运行后,要么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:246 y) b+ t# b& ?4 u: o  Y3 ^
追加一个问题:我先在的中断分配如下:  Z, d* A0 c  {
4:VPIF
( J0 L4 C( \0 K3 i5:LCD

' Q9 ^* M0 V, O4 D+ I/ s6 z不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44  S! o0 s7 T9 r! M3 f( {
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
0 z( h, F3 z) M
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 09:59 , Processed in 0.048872 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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