OMAPL138中断问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8174|回复: 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?我现在实现代码如下:
/ R+ |! m6 ]6 g3 M6 x% R3 p        //kEY GPIO set1 ?6 ~9 X' U$ B; _4 x7 N3 G5 L: r- `; M
        GPIOBank0Pin1PinMuxSetup();
( P6 a8 x+ \; n/ U' h! y        GPIOBank0Pin2PinMuxSetup();1 Q  m/ W, q) r+ A" ?5 w% d
        GPIOBank6Pin8PinMuxSetup();& h* B( E* K. @; K) u( i& p
        GPIOBank6Pin9PinMuxSetup();
# e+ l, l, p) `        GPIOBank6Pin10PinMuxSetup();6 X4 n+ v' S9 M
        GPIOBank6Pin11PinMuxSetup();
- X( g0 q5 j5 ^. J, F        GPIOBank8Pin12PinMuxSetup();3 W% m! z4 v$ A2 j
        GPIOBank8Pin14PinMuxSetup();
5 c8 i* o, s! B' w4 P! k        GPIOBank8Pin15PinMuxSetup();
, t" M3 }5 N" x3 \3 _  S) U
0 [, Q1 J4 @6 B7 E* `    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
* q" P' }, F: F+ f! F' Q7 l    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
; I7 _+ x' j3 Q    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
. j$ _+ M2 o! [& Y  U  r/ f    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
$ x9 Q1 ]! u9 J. \" F+ C    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
& x3 J/ l# o/ _& d    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
: F& c) p/ I0 b: I5 e    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
+ s+ N. {' d! r0 a/ _7 M    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);! V# y  `9 J  H& B
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);* |! A4 W+ A5 s% q( ?
+ e( u' y5 V( J3 S+ ]8 K; M$ _8 S
7 J' |- l& \' I; a
        // 底板按键中断
8 Y! r3 e6 f8 J4 k    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none; e, J7 R9 \  g# g( N& ?: M
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none. I. A2 \: V0 W# W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left2 j' z: V" R3 G# P0 b, C! Y
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
5 G. F2 `/ m( V2 j& b    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
9 E  b0 U2 F+ O8 k* q+ A- J    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right. e, K$ s7 R2 c' N0 P' M+ k! k
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
) h* a' e# C/ N4 Z: [5 s( J& K$ Q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel! K0 j1 x, Y8 u
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
' B+ @6 ]2 f3 e0 j+ c8 [6 u3 d  B1 i& _/ d5 e" N- |
    // 使能 GPIO BANK 中断. ?: r$ s& Q6 r. t" p) {) g
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
6 v& U9 ^4 l; g7 P8 d" _3 J    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
5 R. N4 [* y1 n/ \/ M    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO81 H( x- N& ~% _! _& \
' w- n0 i! K( C* A
        // 注册中断服务函数, o  z5 J/ [3 M+ W
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);- H0 |- _% x- o: P
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);/ Q" V! o  t0 B! B1 W4 A/ X
        IntEnable(C674X_MASK_INT6);
% Z# V- Z+ A- P6 s! R! t
# `0 m3 o! D$ B+ ?) w        IntRegister(C674X_MASK_INT7, USER1KEYIsr);' U$ i6 {' ]9 }
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
' K6 f' `$ o, t  C+ p1 S        IntEnable(C674X_MASK_INT7);  \- x! |8 q. e5 F" \

* T7 K' J4 s, j  W0 m) K        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
9 B2 D0 Y  I6 w3 {: T        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);, x! Q4 J. V, N% k
        IntEnable(C674X_MASK_INT8);
3 ^+ N' m% i5 {; G5 s8 `( P$ H% O但是现在收不到中断,请问问题出在那里?谢谢
3 T: j9 n2 @6 z0 F3 d. }7 C
分享到:  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/ [  q' b8 V4 I; Y
从你贴出来的代码看 应该是没有问题的
# |! p4 `/ r: H/ D; g$ Y3 g; c
还有其他要配置的地方吗?比如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; ^3 T0 t2 p0 s! r8 G; z( [
从你贴出来的代码看 应该是没有问题的
) r1 }8 B& z, A4 N% X: B$ a8 W9 g
追加一个问题:我先在的中断分配如下:
6 S) j: ~9 g9 \4 v4:VPIF/ ~" g5 M' Q- J" X; F4 h5 B( h
5:LCD) Z9 B9 Y- y2 g- H+ X2 g! ^
6:GPIO Bank0
' L% A8 _3 w8 |& K9 ^" j3 |7:GPIO Bank6& g% w, x/ o) i7 v5 H
8:GPIO Bank8
$ b3 T. n0 k9 _9:timer
4 Q( V5 w: v5 @4 \发现运行后,要么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
* a) M+ c0 q5 C  _" j追加一个问题:我先在的中断分配如下:3 K4 U/ C3 U# R" r1 U! f
4:VPIF: y8 D/ j8 g! @( x3 _$ y; j: J
5:LCD
' v! m7 l% }! T( }+ O- x& ~/ |
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

+ ~5 A) U: B5 k; o  `  H恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-4-8 00:05 , Processed in 0.043295 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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