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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7560|回复: 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?我现在实现代码如下:
' I5 R5 j& i: Q! u' V  _' _# w% h; i        //kEY GPIO set& W8 N; \) d, d
        GPIOBank0Pin1PinMuxSetup();
  }; [, Q6 \5 b        GPIOBank0Pin2PinMuxSetup();2 G" z. N) Q; \9 d/ R
        GPIOBank6Pin8PinMuxSetup();, y6 r+ [9 j5 m) l2 e/ I
        GPIOBank6Pin9PinMuxSetup();% H) {1 \9 V& V( _5 ~9 ~
        GPIOBank6Pin10PinMuxSetup();
7 k3 {/ S0 Z) G: ?9 \        GPIOBank6Pin11PinMuxSetup();
0 @* v: x8 Z" v( e8 z/ F4 t        GPIOBank8Pin12PinMuxSetup();# [9 o) r8 E/ ]5 L8 D2 B
        GPIOBank8Pin14PinMuxSetup();
+ Z6 p2 {$ R* l$ g7 Z        GPIOBank8Pin15PinMuxSetup();8 y: f  f- U( p* ], ^; j8 M0 C
0 k. n' T7 A2 [0 G' n& z: H
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
2 o; D" _; t! e  \% Q    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);, u& q( h4 o1 `, T, {6 Q
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);% _* O$ a. r2 F
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
( W- _6 T. p" d8 V, P! S' w& O8 A+ g' m    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
( v5 I$ O" x( B3 @, w/ W    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);, l% X1 m% p, F
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);5 J& d' d9 i- ], y$ J8 F
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);4 w! n+ _: E& G0 g# U  V9 I$ S7 ?. y
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);$ a) N9 y. G/ I& S9 l

+ f/ L$ W" E# h: ?3 Z4 P( @1 u7 f% O. h: q& o9 q) p' N
        // 底板按键中断9 c7 W; q/ {& y3 z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none: d2 F4 z- m- G1 O0 O+ Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
. }( ?. L6 b! d! ]  r: k    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
9 V, k0 b5 \8 v% N% c6 i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok( k- Y2 P9 ?& A2 t
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
& @  R: M5 ?- f% O! Y9 M8 l    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
) D+ h! G# d' R$ D3 l. @/ ~    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up$ d0 x- r" `" }6 ^  V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel9 Z, r1 L5 K4 O$ _- p
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm% E% A! D& o* N* O; f
, ?  X+ \* M& \' ]5 w6 f3 H* ^
    // 使能 GPIO BANK 中断
$ x+ R# |8 X1 T: V) z* Z; X6 ?    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
5 @" ?5 y2 l( T* ]+ q7 b    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO60 E; M  ?. `: Q
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8& K2 t2 W1 L% F7 s' J

) O* [! z  P3 y5 L        // 注册中断服务函数
, P( g3 \6 V. W, v& g0 j        IntRegister(C674X_MASK_INT6, USER0KEYIsr);0 \: n2 Z+ P) M2 C& ?) Q
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
- a: W5 _4 _- Z        IntEnable(C674X_MASK_INT6);  I4 r$ K5 Z8 Q) h3 G2 A

7 Y' U) p, m. W- F! ?        IntRegister(C674X_MASK_INT7, USER1KEYIsr);* }) e1 C8 R# |, a/ h* }; @
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);% N0 A/ K: N& J9 r- N% ^
        IntEnable(C674X_MASK_INT7);
; h  x' ^, P9 H/ ~
8 \  @! M9 f7 Z: A: V( ?        IntRegister(C674X_MASK_INT8, USER2KEYIsr);" i6 C6 {4 o8 r- `; N# n
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);4 S% @$ E. k: T
        IntEnable(C674X_MASK_INT8);+ S& x; }; `$ N
但是现在收不到中断,请问问题出在那里?谢谢
$ I7 q/ n$ q; Q( F) j! u
分享到:  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:420 T, n, }' [" s/ k) {
从你贴出来的代码看 应该是没有问题的
/ ^5 S! }: o( J6 n. g
还有其他要配置的地方吗?比如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
& {7 d) @$ @: k* p/ ?# H. C. @& \; W从你贴出来的代码看 应该是没有问题的

7 ?# {* u9 a" Q+ w( O追加一个问题:我先在的中断分配如下:% ?; {0 u' |) j  g
4:VPIF
- B/ H. K  i. c. Q' A9 Y5:LCD
" w3 C( z0 [, k: L: ?) e: R) C6:GPIO Bank0& B. b0 w/ k$ {
7:GPIO Bank6
/ _/ U! O. {, F8:GPIO Bank8
* C# h% b) R6 b0 Y' V3 [9:timer' I& a4 s  t( l  W1 t4 J
发现运行后,要么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:245 r' k$ _/ d* t- s- D
追加一个问题:我先在的中断分配如下:6 D& |- L4 D3 Q1 L; ?. p2 N: N; a0 I& v$ q
4:VPIF1 C  L1 u& e) M- x
5:LCD

+ ~  Q0 n8 z& t' p- u1 P7 Q不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
* Y! {9 A! E" X& F3 G" B不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

( U6 |" p6 m5 h* \恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-18 23:10 , Processed in 0.041424 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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