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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7229|回复: 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?我现在实现代码如下:/ k6 C1 `, s9 J: _  k' P
        //kEY GPIO set
" F) w* D. f! I; [        GPIOBank0Pin1PinMuxSetup();
* v; r8 z* A8 }  d/ ~3 ^" e        GPIOBank0Pin2PinMuxSetup();
8 y$ X* Y1 p8 Z7 ?        GPIOBank6Pin8PinMuxSetup();/ m' p5 ^" S; l. L/ B
        GPIOBank6Pin9PinMuxSetup();2 H2 _$ O) r# V9 h( C' n8 \
        GPIOBank6Pin10PinMuxSetup();
8 Z" z+ S3 x$ U- O) c0 k        GPIOBank6Pin11PinMuxSetup();
: N! o/ x2 P; z2 g        GPIOBank8Pin12PinMuxSetup();, n0 m" R' u' g8 ], R( x- o# V( x
        GPIOBank8Pin14PinMuxSetup();: c5 H( t+ x' U0 `6 w$ ?3 D
        GPIOBank8Pin15PinMuxSetup();1 a4 M" b  B4 v% T: u
! p* ~8 S( J' r8 K
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);2 ]' Q) g; {9 Y' T/ g4 y
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);0 G! q- Y! M3 [; o# w$ X
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);8 q! z; `3 n5 k. Q% K
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);6 f- `( L+ a- z+ T7 t) s1 X
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);5 i7 K9 k+ {3 H' r# S
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);' R( T- r8 C6 p  g" W. q7 Q6 T
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
3 d8 I; R& G1 \    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);6 e9 m% H- @0 K1 D5 p; `
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
  b6 q, ^6 r1 r
& R$ `1 A+ R7 j' [! |; v4 {' Z7 U1 Y
        // 底板按键中断
, j" d* |5 _) q$ F    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none- J( r* F0 J4 @: W# r2 Y' X+ z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
3 D2 s" y& V4 d& R2 d# e    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
" `# g, g9 c  j- Q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok( C' }+ Z' ~5 `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down- t/ U7 B& s( @* k! e5 \
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right; h8 v" x1 R) H+ R0 x( c
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
8 g# I, J9 \" K: B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel& ^5 K/ g& f' N! P* U
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
" E+ r; |- E! d
! @3 `& i6 W+ u. P    // 使能 GPIO BANK 中断4 g! ~3 F1 K5 }. B6 K
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0% f4 Z) W' X0 E6 V% e
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
0 u2 g) Z& q4 u3 K# |    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
" U8 J/ d8 N5 G. ^# t- P% L$ x! _, J
( ~5 A. z# @* o8 B3 Z0 R        // 注册中断服务函数5 T4 `" z' x3 A( w1 N  P& _1 L
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
! k' ?, V8 ?, }1 _6 u        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);  ~+ e* V2 |5 u' X
        IntEnable(C674X_MASK_INT6);
7 v6 T% \' a+ P' h) z6 e" V$ |( n' v# O0 _
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);2 X! O3 e3 q" {# c& D; F  h
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);! ?4 b% n0 o. I
        IntEnable(C674X_MASK_INT7);
+ z8 U0 B* L. T9 H4 Q2 y; A
4 l1 {9 I! S# U  L2 w. v4 L: b* f        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
2 X, W0 p# k* r# s& H        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
/ f5 C, ]2 n% t# ~3 {        IntEnable(C674X_MASK_INT8);
* b, {5 ?% d5 R3 t1 |! |但是现在收不到中断,请问问题出在那里?谢谢
6 q' [5 l3 a5 r1 D6 B7 I' e4 E
分享到:  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 z! G& q& n! J* v% s; L( I
从你贴出来的代码看 应该是没有问题的
8 n7 k" J3 u) i( y3 s  i" i' |
还有其他要配置的地方吗?比如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
" o' y8 @' n% H6 N$ r从你贴出来的代码看 应该是没有问题的

4 A2 }' W6 A) m追加一个问题:我先在的中断分配如下:
8 ^" @% {& o+ o% [  ?/ [4:VPIF
. P) V# c$ @. r) t5:LCD
4 G% i) W% P/ x6:GPIO Bank0
* B3 q1 `( L1 E( [  ]# k7:GPIO Bank6! c" L: ?/ d9 O1 p  r9 u1 x
8:GPIO Bank8
1 S5 M% e( }, S/ Z1 e9:timer
4 `- n* J, s$ t( `5 e4 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:24
# R. n- m/ [; C- Y1 ~9 h追加一个问题:我先在的中断分配如下:' U! P) u, n2 o5 D  z8 z
4:VPIF
! ~! ]4 q$ K1 o, `5:LCD
$ @* T8 Y0 z* A4 [
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
! N& Q( Q) M1 E) h  c' M2 W不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
6 x. l5 P* {/ Y' I
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 12:14 , Processed in 0.040002 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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