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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7321|回复: 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?我现在实现代码如下:; ], m3 c5 g/ y, g/ Z
        //kEY GPIO set3 _4 B5 J- q/ R( d5 P% c
        GPIOBank0Pin1PinMuxSetup();# j$ O1 i2 D: j* E2 J
        GPIOBank0Pin2PinMuxSetup();# t) k0 n8 R: u% S. V; e
        GPIOBank6Pin8PinMuxSetup();
8 {/ e; {) t  j$ a        GPIOBank6Pin9PinMuxSetup();
. Q5 }2 N# P" d+ k        GPIOBank6Pin10PinMuxSetup();. X: e9 s" a) A
        GPIOBank6Pin11PinMuxSetup();
8 s$ E6 `' x3 d7 H4 W3 ]2 z        GPIOBank8Pin12PinMuxSetup();% K- h! f+ c" z3 [6 T' ?6 B! L* K
        GPIOBank8Pin14PinMuxSetup();
( }- X4 r5 ?5 w7 i5 @1 a9 d        GPIOBank8Pin15PinMuxSetup();0 G5 G0 f) e' B0 Q% I* {/ G( p

4 Z# ]. X- M$ k6 w# d    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
- {3 M% D# n% o' G    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
* m0 E. i; i, j; _' h4 L8 Y! o3 v8 `    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);! b% p' n. X, X9 L
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
2 j6 `* p' `$ h' X4 j% J    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
5 T5 O9 X* B- S$ _2 M; |" U    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
, ?, ^7 g) d' D1 t+ |    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);; |2 n6 r" d/ ^2 s
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);1 P! Z% K6 F5 }/ g2 P+ w( o
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);, R. B& l4 K9 i

5 O1 w0 Q5 q/ m  Z6 D# D3 q: S  P- s' U5 Y0 c8 W6 ^& J
        // 底板按键中断& ^9 `1 F# k6 V% e7 m( u6 ^; I
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none* n, ]4 s* [* F) g$ K" E! g4 Q) q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none0 I9 Z9 g4 d/ J( \# j# R
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left$ b+ c2 {4 C' k6 [5 X* d0 F" P; W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
! [1 H' a: Q5 g3 K& M    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
, n4 b2 S7 C0 ?, a' Z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
2 ~4 e7 L% ?; _) i% e0 U$ g    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up3 C, K) Z; q0 \9 H" L" w* f' U3 V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel; a/ c: b: c4 V- t+ T- N! Q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm0 G2 @' {+ Y/ T/ [

& s8 t/ J5 p& F) C5 B( M    // 使能 GPIO BANK 中断" }2 R3 v2 h1 [% }
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0  t5 l1 [  X8 h1 g) M8 i6 M
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6# v1 d& j2 ~8 C" S  s" F! g& i& p
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
: \9 u, Y- m5 k+ ?* ^
- I: T2 t$ D" H6 S: u        // 注册中断服务函数# j) _* K, ?( T" t' `
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);* e, @, k( ]5 I( f) i4 K' o4 L
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
9 R6 L2 y9 e' s  d4 i        IntEnable(C674X_MASK_INT6);
0 T/ W. ?' m# D! P
5 F! i9 Y$ u; {        IntRegister(C674X_MASK_INT7, USER1KEYIsr);8 S$ o, K# c% o$ R/ x% k
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);/ H. c2 h. a' ^& ~
        IntEnable(C674X_MASK_INT7);
# o% C: E6 b: H/ V7 [! w! y8 p* Y) ^; ~
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
( V& E# e: j5 J' i0 x( L( O9 }        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);1 I( N' W+ c- l
        IntEnable(C674X_MASK_INT8);
: ?" e, v/ i( W2 t: K但是现在收不到中断,请问问题出在那里?谢谢1 s( W, q) v+ X% P  D7 h
分享到:  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  T) r4 O3 w: R+ Y8 r, I2 S, A  l
从你贴出来的代码看 应该是没有问题的
/ A1 \5 r$ i' I: D8 R, D
还有其他要配置的地方吗?比如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
' ~- D$ p" o# D# W  x  i2 T. O从你贴出来的代码看 应该是没有问题的
! }3 D0 W* ?6 B& w0 y- ^; e
追加一个问题:我先在的中断分配如下:
% W( Z7 `& G( @: L5 r( h  b, I  Z4:VPIF. Y& s: |4 d6 K3 |. @' ^0 N
5:LCD0 K* N; |4 G( k+ z" M3 [7 v3 g8 H
6:GPIO Bank0
$ ~$ N, R! ~! i4 C. }7:GPIO Bank6
" O  L+ d6 b" a* H8:GPIO Bank8
; H0 g- t  W# a9 T! X0 F9:timer
' {* K1 C3 X5 u/ S( u) m& P$ W发现运行后,要么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; P, Y: C& I2 G% O1 X/ \6 F; J& Q
追加一个问题:我先在的中断分配如下:
. h# y% n8 t* J4:VPIF
* p' q4 p: Q5 }, p" @4 r5:LCD

- ]5 Y5 h3 U. N1 ~. c8 ^不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

& V7 r: C8 P! ~$ A- k( ~; s8 i恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 12:07 , Processed in 0.042117 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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