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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6596|回复: 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?我现在实现代码如下:; W) n2 h$ e: X/ F7 T
        //kEY GPIO set
; I! V4 e0 m' l0 e1 n        GPIOBank0Pin1PinMuxSetup();& u8 u! H8 U! i9 B; ]  i6 k- Q
        GPIOBank0Pin2PinMuxSetup();
& p0 O# E# t. t3 [: ?5 M2 m        GPIOBank6Pin8PinMuxSetup();
- A3 o) Y% `* v        GPIOBank6Pin9PinMuxSetup();. L7 B: G" n& {5 N
        GPIOBank6Pin10PinMuxSetup();
8 f* {5 [. W. t  k        GPIOBank6Pin11PinMuxSetup();  i4 i- w$ e# D" }; Q# I
        GPIOBank8Pin12PinMuxSetup();% M0 ?. `4 B( C. I/ s
        GPIOBank8Pin14PinMuxSetup();( B  V  g4 ~0 G7 X
        GPIOBank8Pin15PinMuxSetup();
, K. \/ I) y0 i$ ?# b) v  `5 ]! }
$ _9 m* c/ \+ H    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
1 K4 l+ e- L; J    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);6 U( i1 V& ^/ q1 P3 g5 h
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
; \6 l; k, T( M6 o    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
: K# M1 T8 P: l, ^. r7 s8 r, N2 g/ p7 p    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
" _/ ^3 o; `- \+ V# `    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
0 I% o0 x6 E: s0 E: g    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
9 n' k1 b; r% ]9 s    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
7 u# I) j& _) X. p" |* Y8 ~$ }    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);4 F. G( t5 m' C; @7 A% h
5 c# w7 }  o1 M9 n1 {. N" L9 b
6 K* P# R5 h+ {+ k* A
        // 底板按键中断+ d; f/ [4 e1 }( A
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
5 T2 E0 M' L& Q- n$ x, I; q! Z1 G) O    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
/ o: Q/ a- I! @2 j& c; ~    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
9 a; y' i7 T+ w    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok2 J; o6 m6 r. z  N) w& Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down" }; L3 u( b" z) V& H4 q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
& @& ?: h& a  W; z. X5 b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up0 J: _3 L: U0 y( \) e
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
5 x+ w4 e3 k% J! k1 K% _, t    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm: `0 v) ?! s. T9 ^, ^( K. r
3 A# ]- T' q9 r4 u. y
    // 使能 GPIO BANK 中断
1 [, S5 \8 }& d    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
, k% z$ e" h0 N9 }! u% Z8 j    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
) j" W6 @+ j% ]    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
1 Z) b* q/ c5 B/ [! u9 C6 R' V+ U& G" c8 i
        // 注册中断服务函数5 h5 k/ _0 j( n5 Z2 m3 w+ @
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);; k7 I  C8 y" s8 Q. u5 ?' ^7 e8 |4 U
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
9 Q/ H, P2 L: k2 Y4 t% a& d        IntEnable(C674X_MASK_INT6);
% L3 T) B/ y4 o& R* M
4 E; x' p# _4 R5 J+ C' S        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
  p$ |- R# B: I$ e        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);( V" n# m' t3 f, \- l
        IntEnable(C674X_MASK_INT7);& Q$ F" j1 Y2 q! B! T; o
) }! W5 \2 D$ i( H* l; O8 H
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);/ I( u- P* N$ ?4 I. u& q! L
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);. b( \8 {; I7 |! ?1 k8 V
        IntEnable(C674X_MASK_INT8);, e- w! ^2 I; V0 i; P& ]
但是现在收不到中断,请问问题出在那里?谢谢" L" o1 h/ K4 X" }5 n  S* _$ z7 I
分享到:  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:423 J: I$ X) Q1 G
从你贴出来的代码看 应该是没有问题的
( E/ G7 q  @7 C" }- A! ]# P
还有其他要配置的地方吗?比如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/ \5 F/ [* _# e* n! k
从你贴出来的代码看 应该是没有问题的
- W/ r! E% N& t5 W! g6 w
追加一个问题:我先在的中断分配如下:! l% W5 M2 y  B1 _7 ?5 M
4:VPIF, p- j* ]# E2 \( p9 m
5:LCD
" k# @" B9 E! u- m4 P6:GPIO Bank0
7 ^8 X) o  c2 F" a& h+ w; a& s7:GPIO Bank6# P8 l. |# B0 p! ]
8:GPIO Bank8
; R5 \  u6 d( z4 F' E: F9:timer7 q7 d  ?2 f. V( @& 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:24
* z' r" t- T" o$ y9 b8 B$ \  E追加一个问题:我先在的中断分配如下:
/ ]* X# O$ f# c0 w7 Z4:VPIF
' m% C5 U5 a; p; o7 Z5:LCD

& a  V6 S& p5 O$ ^5 c! W; d不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:443 M( X% |4 e! F+ N. {
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
0 r6 Z6 _$ n! Q7 w8 Q
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 10:39 , Processed in 0.047950 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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