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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6597|回复: 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 G8 W, Z* o0 g. q$ V0 @7 _
        //kEY GPIO set
, v$ G7 I5 F0 D5 H  M        GPIOBank0Pin1PinMuxSetup();
% ~+ m5 _7 P$ J6 p8 v        GPIOBank0Pin2PinMuxSetup();( r9 r. @( W! l$ m( I0 {$ M* p0 c
        GPIOBank6Pin8PinMuxSetup();4 Q' J2 [: G1 n' E; l
        GPIOBank6Pin9PinMuxSetup();
, |% n# r& v  g! `$ e3 T( b. w- g9 |        GPIOBank6Pin10PinMuxSetup();
4 F2 r  m- a: c        GPIOBank6Pin11PinMuxSetup();5 @* h+ N% H" ^3 G* K& k. F, @* z
        GPIOBank8Pin12PinMuxSetup();
- A, P: C4 E3 b* K! D        GPIOBank8Pin14PinMuxSetup();5 E: [9 L9 s; c) f. w! g& R5 _1 k
        GPIOBank8Pin15PinMuxSetup();
2 f5 e% b4 d: |5 q' p  p
( f* d% S0 }; w9 S3 a    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
1 ?, o7 b$ j- C" G1 n& A    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
* a8 P/ _8 `% K3 I8 \1 u" ?    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
+ B4 [! f2 ]( b9 Y    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
- ~/ l: m9 E; {' M; k; B( w, x    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);/ G7 J( ]2 F3 d' ^  k( [3 r5 ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);1 C* B* O% `/ O+ M% G
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
# d, V" x- f% z1 G! K9 Q    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);* G0 }) \2 m- O- x; y
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
0 Q' k6 k  |9 ~8 w& e( f$ d: r4 W+ h; N8 Q: l) c
5 b$ r/ R: g1 w) I# q
        // 底板按键中断7 Q& i; Z: n4 f* ~- ?# x
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
; l, v0 i$ ?- S. B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none1 ]( i/ y) P# z/ y: p# w
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
( k, t- Y( r( J( z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok% R9 ?6 I0 T4 k6 T9 ]& V' |" H
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down& K2 S8 b! y( A, g
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right: G$ ?  {5 d( e" o$ M6 ]5 t
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up# J2 S; V7 F: x  x, R1 V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel! p# o) s: A7 _7 v# k
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
3 R  K" w% z% n9 M, B
+ ^" L) O9 |1 x: b8 _$ }; B    // 使能 GPIO BANK 中断' Y$ A: W, r! N9 ]; l0 A, f+ R. P* b, V
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0, e+ N" \* G  A# g) K3 k  x: O
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6( w# W: _7 Q* E6 y' I* k# P
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
) X3 o% ^0 k1 f0 f! _
1 E; w& @% l( n: x' U  [3 M        // 注册中断服务函数
  C* G  `- v! z        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
" W/ f# C( T, Q1 `" E- u        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
9 i/ v" B. u  F- N$ N; A        IntEnable(C674X_MASK_INT6);
+ _! A/ m$ U* a0 Y2 Q3 q' y2 N' F( w- `! V9 K3 e/ |
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);2 L6 ]9 `% P/ ?1 {! ~4 T
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);9 F& O4 t  @9 m' U! S& f
        IntEnable(C674X_MASK_INT7);
  ^5 w0 K- U8 G) g, M4 G$ m6 `9 ?+ c/ j
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
" ]0 G/ S4 g8 ?! W# o) ~        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);! Z0 ]0 g1 e6 d, `7 d( J
        IntEnable(C674X_MASK_INT8);
9 c! a4 N; j  o- j但是现在收不到中断,请问问题出在那里?谢谢
! {) `  q& F% }* _* t
分享到:  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:426 @7 J4 s+ P1 Z' e
从你贴出来的代码看 应该是没有问题的
, a4 ]! W! }' T
还有其他要配置的地方吗?比如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
  W% L" N4 U! k0 }2 `- L从你贴出来的代码看 应该是没有问题的
. I& V- A  [8 O# f8 v
追加一个问题:我先在的中断分配如下:
4 t9 [; C/ Z& K* p0 R4:VPIF! d4 h0 f3 H" e% F" _
5:LCD
$ O6 I. W- I: G& ^# Z/ w; h4 k6:GPIO Bank0
2 {6 J) O6 B* U; I7:GPIO Bank6
2 P0 ~0 o5 n/ E; j8:GPIO Bank8) R1 O( O0 O0 L( _: b
9:timer% B, j" Y4 U0 y
发现运行后,要么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:248 k! P, z7 H6 c7 i; ]: }( w( {
追加一个问题:我先在的中断分配如下:
" B# g; M6 [7 ~* U. i/ a8 u4:VPIF% W/ |0 U+ w0 @  U
5:LCD

. K' u0 Y$ f0 J( W/ }不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
* i# n% m1 C' k1 T% z$ v不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

0 v9 ~; K$ [% d$ H4 Q: S恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 18:08 , Processed in 0.039581 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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