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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7425|回复: 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?我现在实现代码如下:8 W, h6 M8 x& a3 g/ z
        //kEY GPIO set
) a) \1 M! H8 N3 i        GPIOBank0Pin1PinMuxSetup();
+ Z; d/ r$ s# z0 k8 j        GPIOBank0Pin2PinMuxSetup();6 M! D& I2 l8 \
        GPIOBank6Pin8PinMuxSetup();% \% y7 v: D) N5 [! l
        GPIOBank6Pin9PinMuxSetup();6 a' O" L9 r) m2 n, J
        GPIOBank6Pin10PinMuxSetup();; Z/ n. o$ V6 `- T
        GPIOBank6Pin11PinMuxSetup();
0 n. s% L8 S1 X( x( c        GPIOBank8Pin12PinMuxSetup();
9 R8 D+ @" T# _" c' u        GPIOBank8Pin14PinMuxSetup();) o# C. R. s9 \+ P8 Y" b/ L, Y- S7 M
        GPIOBank8Pin15PinMuxSetup();$ N; v" d9 C0 I: ]& h/ r
1 S; C" R4 C6 u$ C- W
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
! b9 T( b! z9 J6 u' ?5 `6 C4 I    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);  W" t# n6 U0 e% C) Q" ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);1 E' x; n3 L) [
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);+ o# n4 A5 s4 E( g9 K
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
: T' Z8 |9 V; y& T    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
6 \4 y" C% y9 j1 ^    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
2 J8 m3 [. J* f; Z    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);3 I2 j. D% `! N0 o+ d0 ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);$ J4 a+ m+ K- U3 `- C* _; ]
. k% C+ i1 C2 Z( b5 r* J( }
" N0 T1 V* n$ I* x6 }
        // 底板按键中断
0 J9 ~( [/ ~  Z, O+ R8 t    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
; ~( M, v( q4 x8 k5 b. s8 i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
4 `+ }1 {/ Z+ n) R, x1 S6 j    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
$ h1 N+ ]4 [/ J' E1 ?2 `0 t    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok4 z& W1 Q0 `. d
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down: Q9 o$ K: Q4 @6 O6 q/ c! b
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right0 ?* P. o+ D" ?! H
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up7 V- ?- I+ J) T- l, X4 C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel# O0 A. E! h0 w+ F9 ^' Z; z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
+ u/ c$ r1 T# y4 |7 w6 T5 Z5 c+ }! F/ o! C  x) {
    // 使能 GPIO BANK 中断
: [) }( K- D) H$ q! U8 y1 C    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO07 N* ~$ I# x5 B5 j& o" c+ {9 v
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6$ _8 i9 p7 `2 C- [' l& p% a
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
, f8 |1 N. V6 x5 O* R9 u: ]8 K6 H7 e
        // 注册中断服务函数- i" }! }" w) H* v9 d5 A, z  U
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
" L. g5 W/ `$ G# N9 x' ]  e        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
7 t4 G4 d) r! v* R3 l        IntEnable(C674X_MASK_INT6);
* r) c$ ^  O+ R% R" n- d& c0 O+ E( T$ J  W; O
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
+ a, ]2 I; m1 J/ N9 j        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);. k+ k( ^$ T. E' }
        IntEnable(C674X_MASK_INT7);
  {0 G) s8 D' }6 m  p) O, g
* I+ r. T0 K( V* W        IntRegister(C674X_MASK_INT8, USER2KEYIsr);8 E! i, q- @2 i( W; `* h, j8 \
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);2 }# ?# ~) @- C$ L, {+ G/ f3 ^' }
        IntEnable(C674X_MASK_INT8);- J- o5 P7 G' G% p4 ?0 x1 A! x/ g
但是现在收不到中断,请问问题出在那里?谢谢
6 J( f  G8 Y+ s2 \& c6 P4 A
分享到:  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 b) E  F; l# E8 b8 @
从你贴出来的代码看 应该是没有问题的

3 I$ i) G& M  i2 y8 ?还有其他要配置的地方吗?比如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 Y" @' |& N% n/ o( \
从你贴出来的代码看 应该是没有问题的

) O, `1 `9 G- G$ v追加一个问题:我先在的中断分配如下:% H$ L; f: r! a, r( M2 I
4:VPIF8 j0 m9 i& L: j) f( S: R
5:LCD
) P$ v( s. o# j9 l9 d- a9 G( t7 d6:GPIO Bank0: O' h1 U! W5 I3 X
7:GPIO Bank62 X, {9 \0 s+ n& \' A/ _
8:GPIO Bank8
; N  D) m6 L5 ]8 N6 \8 t  b9:timer2 R9 [. v& y1 K$ N
发现运行后,要么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
+ Y7 }1 G2 a; c* k$ U8 O$ u( e追加一个问题:我先在的中断分配如下:
6 p1 p2 E) k' ~3 A4:VPIF
4 ^+ S* |+ D, V6 s5:LCD
3 K( _" G2 m' `' N" y% j% B
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:443 x# b' [4 S7 m4 C! B' Q* s: X* z
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

. A' M/ B5 u8 W5 R8 M) t恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 10:26 , Processed in 0.041130 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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