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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7422|回复: 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?我现在实现代码如下:
* e3 M/ E6 y5 u        //kEY GPIO set8 t& W$ u! z3 {- u  _) e, |" k+ f6 [  \
        GPIOBank0Pin1PinMuxSetup();' j8 x9 {, S7 x2 O
        GPIOBank0Pin2PinMuxSetup();
7 f! X& G& z# t- `0 C# T4 I- e1 t  r; o        GPIOBank6Pin8PinMuxSetup();
) o* ^1 |3 \1 r        GPIOBank6Pin9PinMuxSetup();$ i" K7 u, x& e: t0 W
        GPIOBank6Pin10PinMuxSetup();
3 ^. V0 V9 v2 ]        GPIOBank6Pin11PinMuxSetup();
6 K& b% R. |, d0 Y% q$ {, [        GPIOBank8Pin12PinMuxSetup();
- o8 [* I* X2 Y/ l        GPIOBank8Pin14PinMuxSetup();
. T# ^# D, B2 I- E4 {/ e" D        GPIOBank8Pin15PinMuxSetup();# F7 |5 C9 ~" N1 O3 l

( m+ B  Q3 Y- ~- Z  h    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);. ?$ g) @5 @1 D( J2 ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);0 e: f# N+ ]- O5 }" n
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);* C: _4 \2 [! q* g' R$ T) B
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
% c+ `0 L0 [& C5 @    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
1 I3 d* T# a3 a& }/ Z    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
/ ^2 k" N- W) y' |, u, D* H    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
+ K1 q" _$ Q- u9 {    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);1 i0 Z. j) H. [  f) A
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
7 {% M0 G5 a! z" h! I3 o' J
  b0 N3 V4 u3 x0 e; K) B; D7 \+ D1 Q6 Y
        // 底板按键中断
3 J. g9 X3 G! D/ j3 Y: K  B" Y4 }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none; K: B3 {' I* |6 o5 K( A% p* r) ]
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
; E( u5 t1 u: K7 f    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
$ Z5 D/ I$ [8 y! @: k4 ?5 P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok8 D8 ]; R. C9 E9 t* E
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down. G% {: Z7 d6 {5 {7 ^0 Y0 F% G; \. U
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right3 K9 c- Z. K* H' J
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
" N9 U+ T* \. g: ]4 n/ b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel, y: s; |4 A" `  d- S# T3 {* D
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm" G9 W9 Y' X) U! J8 S% ~* V- c3 U6 M& c

' h! e, o  L$ k4 g5 i4 d1 I$ p; q; i    // 使能 GPIO BANK 中断1 K/ `. k4 ]5 W; p: Q
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
' G9 h* P5 J2 U, l+ O2 l    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
4 ^( S$ |  [2 ]" V* s    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
7 Y% c6 G4 O& {/ o  e* m, i' f, t9 ~" a! G$ j7 c
        // 注册中断服务函数
: G* b6 Q) I8 _        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
$ a' M+ P) J; W        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
. r* S- W/ @7 R4 ], A        IntEnable(C674X_MASK_INT6);
$ \- ?. b  `8 K. ]1 ^$ ?, G
  U3 J, U. E% J% B; @        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
# o& H/ J9 r7 N( h: l: S2 {        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
- N- n* ]. Y2 q6 B6 W! i        IntEnable(C674X_MASK_INT7);2 Y2 W, P1 t: b6 ^6 q2 U

6 a* e: U  m; W        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
  I+ J; }7 i$ ?) M        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);% m$ ]2 `6 x: c, }/ E' R7 q
        IntEnable(C674X_MASK_INT8);
7 ~. E5 ^, c; {5 F0 S6 Y1 Q但是现在收不到中断,请问问题出在那里?谢谢
$ ?% U- u' q4 h; L: K
分享到:  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
7 _( ?$ `& Y( O2 c; ^2 i$ o. B/ p从你贴出来的代码看 应该是没有问题的

0 {  o! B4 D- y: 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
- y' k" }4 E3 \, S5 @" t; n从你贴出来的代码看 应该是没有问题的

9 o3 U6 A+ A* X追加一个问题:我先在的中断分配如下:
1 ?& X' ]! v' I4:VPIF9 q) |4 K1 t/ i( Q, A- _
5:LCD( L+ O: u" P6 _2 U
6:GPIO Bank0
) G) J/ t5 G$ q( G" C8 c7:GPIO Bank68 `$ m" E. a% p; e8 b
8:GPIO Bank8& Z  V) e% q+ k  s& y6 l
9:timer* a2 k. B4 {+ W* m) E' O0 C
发现运行后,要么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+ g$ y( ^/ c1 E6 i# C
追加一个问题:我先在的中断分配如下:
0 }7 A$ v6 a! i# [4:VPIF! }6 @+ z4 H8 P7 K7 e# H
5:LCD
! p; h# z, Z1 g3 V
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44$ U, n3 S; a# y% ^
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

7 U" U1 z9 d1 Q# P$ w恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 08:35 , Processed in 0.041165 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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