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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8112|回复: 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?我现在实现代码如下:
) n8 d2 j! t  [: m% r9 u0 w        //kEY GPIO set
  \0 A4 V+ E# D+ T* i- ?        GPIOBank0Pin1PinMuxSetup();* Q5 L/ T7 g$ a7 r/ V7 }. m; c
        GPIOBank0Pin2PinMuxSetup();
5 @. E! n2 h; M5 T; @, b        GPIOBank6Pin8PinMuxSetup();4 x/ w9 Y+ Z' q: o
        GPIOBank6Pin9PinMuxSetup();! f2 I5 j& V% ]6 v3 M/ b, O, t$ M
        GPIOBank6Pin10PinMuxSetup();
! d& E3 ~6 g' o0 \) g        GPIOBank6Pin11PinMuxSetup();) Q! l/ R" s5 M. e; O, l. n
        GPIOBank8Pin12PinMuxSetup();& l5 t: }- V, w7 M! z
        GPIOBank8Pin14PinMuxSetup();6 \" |: Z$ {8 ?% h& P" A( ~4 Y3 _
        GPIOBank8Pin15PinMuxSetup();
0 i) H' _! [. v
9 X: A1 N6 l& c    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);% M+ d0 Y" Q: _1 G. |
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);5 J1 |2 Y% Z1 I" h
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
) {/ j0 H0 a) D    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
: |1 L  d% O0 h) {    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
: x6 ]$ ]; S8 Y) E( _    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);* ^* ~" k. E/ V  D6 T5 [: r% z- L
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);; P: j( Y: T% ]" s& Q7 |
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
* n, P  i7 ?+ _& {, u. {    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
: K: F4 u" n( I: Y1 o
# q! x+ I  L' e; k; M( B! Q7 L" o) g4 |
        // 底板按键中断
4 \9 v1 u4 R6 f; H3 l    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
, N3 J  G2 \, l5 a    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none; y5 m. @5 [, I8 n
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left. o( a! T+ W" s% D: `8 D- }( Q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok& h4 p* J# _& {. g) u/ M( }, v+ S
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down4 p8 G6 z* l: b4 O& O+ d" f
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
0 K! W, O0 I$ h( d    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
0 |8 a# G4 a( j0 K2 D    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
: Y4 J* c7 d% r! x    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
. b) X# F) K0 w7 ^. {
. d, e1 y7 }9 I- u    // 使能 GPIO BANK 中断5 j, {  ^0 P  f: p4 b
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO05 C' F! H* c! R6 Y+ ], w0 k
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO65 f# d+ j6 |8 h& _# T/ R
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8$ m( J& K/ \+ W

- a* y$ {! \+ ~# S! @  L% ]        // 注册中断服务函数
! Y  l7 p6 Y* [! |- B5 ^        IntRegister(C674X_MASK_INT6, USER0KEYIsr);& q) ?4 |% J2 U. X' `$ r% }
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);7 O- u3 v3 ]1 q7 g+ T, v
        IntEnable(C674X_MASK_INT6);
8 V! ]& q: L$ _% t0 g6 Z% G( z4 J. l$ i; n9 T' w4 w
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);" S( m7 O1 R! C, f! m0 y4 a: g9 C& g
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
: z! V( }% D1 c  N/ U4 G& l        IntEnable(C674X_MASK_INT7);+ t% W9 O# q' [" Q# ~9 F
+ ?& q: _, U; @; L! A; I& U
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);8 A0 W5 \$ x& e; H$ s& _  R
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
, U: I/ `5 t7 K0 x/ K. Q        IntEnable(C674X_MASK_INT8);
4 c5 T- R4 X4 q  t9 E但是现在收不到中断,请问问题出在那里?谢谢2 Q7 K2 R8 y6 V. h5 ~
分享到:  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  ?2 E6 @7 C: |( K, m1 M
从你贴出来的代码看 应该是没有问题的
' m( O; L! k+ [9 |& K7 F
还有其他要配置的地方吗?比如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:422 W( s' D' n& v5 @
从你贴出来的代码看 应该是没有问题的

7 s  J- G4 v1 H; a6 f0 {* n! `追加一个问题:我先在的中断分配如下:
  s+ {# {" k  `: _2 T1 g% L' N4:VPIF0 C: ~8 p- C& o5 O
5:LCD
3 `9 u/ F) _3 t4 r2 N" A6:GPIO Bank0
" w2 H5 G: V% Y+ N7:GPIO Bank6
( Y6 S7 V3 d- j: _# }8:GPIO Bank8& Q5 A8 C+ i! E/ _
9:timer
( c7 l6 v$ {/ M; s$ G; I发现运行后,要么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
2 w+ U& a# r7 Y追加一个问题:我先在的中断分配如下:9 z8 J0 ^8 f7 w
4:VPIF8 \: g  U, t( D+ E8 y
5:LCD

6 Y. f  I9 ]: _6 }* x不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:444 Y8 U7 j+ y$ u" v6 `/ @: F  ^
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

* U  E3 I' r6 S, S0 E& K恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 19:07 , Processed in 0.043736 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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