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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7942|回复: 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?我现在实现代码如下:
7 j8 ]# ?1 ^; x2 o/ Z4 [" F+ m        //kEY GPIO set
& ?9 o+ H0 N/ N8 i* Z        GPIOBank0Pin1PinMuxSetup();
7 _' a* r( q$ d5 j  m% L        GPIOBank0Pin2PinMuxSetup();
- n3 K6 Y2 u( ]( l        GPIOBank6Pin8PinMuxSetup();5 z& `3 k( m3 r7 X! Y' u) q
        GPIOBank6Pin9PinMuxSetup();8 |' A0 Q4 `+ i
        GPIOBank6Pin10PinMuxSetup();
) T% ^8 q+ T2 O        GPIOBank6Pin11PinMuxSetup();
6 _2 @2 A( ^3 |9 y        GPIOBank8Pin12PinMuxSetup();4 K5 A  V  ]1 z5 S, C( i4 |
        GPIOBank8Pin14PinMuxSetup();
  f& F' ]6 l' ]        GPIOBank8Pin15PinMuxSetup();
$ Y, i! {) r( N# i2 M, S/ d2 z' {) p$ Q9 Z3 K, v( |$ Z
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
- e. ?) |$ y1 Z9 j( u    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);( i' t) k4 q( e5 u7 K% b) M! L6 @
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);  Z2 t8 L6 p' Y' H4 z& k  ^& h+ \4 i. _
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);' ?( ]3 r' i5 Q9 N+ Z0 K! B
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);: D! n2 e" y) k% Z
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);4 r) ]; W( p5 y7 {4 ?
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);' O' y: }4 L" o. w( W& R. }
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
' `: k  C+ V9 c    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
* s' P; L6 ^3 P2 h( G2 c! V1 S7 O2 c, o
  G8 G% r$ ]: ?6 ~  |
        // 底板按键中断8 O5 M* C2 \; X9 I. `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none7 J' K" r5 f& L" u* X* z, m# w
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none, v5 j4 s! I! u' h" ^; N; ]9 }
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left! G  o  h% i, |7 y
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok) c# E) X7 j. w0 k# z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down5 {' X& r6 L3 \. y  X8 ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right) {$ R: F- e1 L4 E: _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
( C% ^8 T8 `6 U$ y4 Z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel) |2 K$ \& }% t* ^0 L4 Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm: Y- r! X- [: l! W! `( V0 f2 F5 G! X
) e0 r& ^, v" a; W( L
    // 使能 GPIO BANK 中断, l1 r* ]4 H  C. e1 a
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0! q. g0 E( d( O) G* H) ~& y
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6% B: j9 w5 Y( m; K! _( M$ U
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
4 l0 C6 w( k' m! H# S1 k' X: M& G$ t  [
        // 注册中断服务函数* t4 z+ @" I" Z& z
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
; B6 N: u# ^( }& m1 X5 G        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);$ K) @- S% N0 M+ @9 u
        IntEnable(C674X_MASK_INT6);6 R6 x) N" U! n" i

: q, y2 L( J2 B( T; F7 H. J        IntRegister(C674X_MASK_INT7, USER1KEYIsr);6 N5 v: k# O! w
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
3 S  j6 A  K* w; ^* D        IntEnable(C674X_MASK_INT7);
2 L4 B  G+ ^# n2 F' l- A4 T1 J9 a( R# v: ~! `9 {2 T( C
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);; \( P5 Z4 C" y. T/ @1 E( G
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
) `/ v5 N6 `2 @3 _        IntEnable(C674X_MASK_INT8);0 J& K' J" ?2 A, S! M2 j6 |/ h) I, d
但是现在收不到中断,请问问题出在那里?谢谢
) f2 d% k5 @5 O8 N, b
分享到:  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  \0 O) E) |# Z& o0 L# K: a4 D
从你贴出来的代码看 应该是没有问题的

2 d+ X7 D+ L: W) I# z5 s9 B( ?1 Y8 e还有其他要配置的地方吗?比如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
7 d+ m- |* ?1 |' {8 y" {从你贴出来的代码看 应该是没有问题的

  Y7 H# O5 w- x0 h6 D. r追加一个问题:我先在的中断分配如下:
$ s; c: ~; C# R0 ]4:VPIF
+ o" d4 Q, i9 I% T3 @4 |" s' y5:LCD
7 o' o" h% ?) p6:GPIO Bank0, w6 u# N$ ?0 B7 W4 e6 w
7:GPIO Bank6+ {3 z5 y, W; V' Q$ j! p' ~
8:GPIO Bank8$ C6 [# S  x( F0 T" @- K6 i$ U
9:timer
" c7 X8 M: V5 ~发现运行后,要么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
5 o+ V3 N/ @8 V: Q; a+ \; r7 Z追加一个问题:我先在的中断分配如下:7 _* ~5 E& ?' X7 l2 `$ s" I8 n; F
4:VPIF8 t" I* j6 k$ a1 g" l7 {! ~
5:LCD
  u, c+ i5 n9 `" `- M
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
2 B: v' F) `9 K8 }/ t* d, P$ a不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
( u7 t8 a( O, P. i
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-9 19:24 , Processed in 0.042008 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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