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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7935|回复: 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?我现在实现代码如下:; e- [1 t6 F  ~
        //kEY GPIO set, ?: L. C: L& T0 v2 |1 ~; j
        GPIOBank0Pin1PinMuxSetup();
8 f& T" H1 y- \! E: x( A0 U        GPIOBank0Pin2PinMuxSetup();$ e8 H& O' o( J" s! Y% e
        GPIOBank6Pin8PinMuxSetup();/ ^2 Z# v; {! z" V- Z9 l+ t
        GPIOBank6Pin9PinMuxSetup();
* J' D! L1 C6 p( r/ D1 A/ S        GPIOBank6Pin10PinMuxSetup();% {2 v# k0 T; x
        GPIOBank6Pin11PinMuxSetup();7 D4 u( z0 l: r3 y
        GPIOBank8Pin12PinMuxSetup();& @: ]! k9 H* p0 V2 W4 W) \: p2 y
        GPIOBank8Pin14PinMuxSetup();
& ~: w' A$ X7 u% x        GPIOBank8Pin15PinMuxSetup();' Q% X1 D, E9 K
* _3 R, O3 A2 x2 a4 B% _
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);. l7 a% s1 x' v" r0 U
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);+ D& ?2 `8 U) U1 W" z* k
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);& ^9 R3 {, q. ^( S
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);/ j9 F' t5 K, _; \1 P, R& Y# Q
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);/ }) m$ O+ z2 e) w+ D9 X2 w
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);4 u7 I( V' @* n( q1 D) s( a& a0 a: j( Q
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
" ~, Y# V! G' |8 y' J    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);) I/ j. A3 l, N9 ]7 N% X
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);8 n+ o: g, S5 J) r( K

# C) Z" ~0 u' C7 \
' j* ?8 B8 B; l3 L8 X3 ]4 s        // 底板按键中断
2 ]* d) A7 v- k8 G/ y, o    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none! Q. Z3 j7 h3 |2 J2 H4 W5 @& h  A
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none7 c3 k/ Y1 I8 L9 X7 L
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left' r1 e7 N- {8 x
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
- G) g1 E4 n; F, h, \8 J  B! A    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
$ Z& r3 l) y9 K3 B    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
: `8 \% X( `8 p) L  Z5 _    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up5 P0 \$ A- C. L" j, `. [: u0 @3 ]
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
. J' v4 K" B8 r$ f; A+ s    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
0 q' ~; k! @# I7 W6 B( f( }/ v( `) y" N3 F( O+ z
    // 使能 GPIO BANK 中断5 Y+ I" l1 m8 p; p
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO03 l5 f3 p& D8 c% [( n! ^- W- N
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
4 V& {6 G' y  W' `5 P+ X5 f$ [: n6 F    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
" q3 I+ T2 L( D9 s0 \& A3 T
0 l( R6 I3 R# R+ D4 _        // 注册中断服务函数6 ?9 i2 x) o# `& `8 e, C" [7 e
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
! R( y' J; N, V& ^/ O) v0 ~        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
  q, B" U6 B8 O3 b. ]        IntEnable(C674X_MASK_INT6);
/ a7 B4 ?- [. l  B
) }6 ]' n1 e* ?- g# r/ A        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
3 c+ n* u  T- D  H4 d        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);* d" L' }; J7 M% {. u
        IntEnable(C674X_MASK_INT7);. R7 s( t8 u; u' A% B

6 o( W, j' |8 L3 _. J: g! A        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
+ h; _# L/ X* P3 m1 _: \7 e, C' n        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);6 j9 r) H- I( \0 E8 R3 _6 ]
        IntEnable(C674X_MASK_INT8);
  T! H# c  P3 z- R* M1 C9 L3 m但是现在收不到中断,请问问题出在那里?谢谢; r3 o+ h# o  K9 g/ @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44: \/ {8 b$ ~5 I4 `, |. ^
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
! Y! O1 ~6 F' ], m
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2015-7-2 10:44:26 | 只看该作者
bit0rain 发表于 2015-7-2 01:24# T0 _/ }: o* W2 t  Q+ k
追加一个问题:我先在的中断分配如下:
+ L. l6 z- |6 F1 C4:VPIF1 K! l, L2 p) `  m6 v
5:LCD

3 G- l8 g1 {+ J9 V1 P6 t' E; {不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
5#
 楼主| 发表于 2015-7-2 01:24:40 | 只看该作者
希望缄默 发表于 2015-7-1 19:42
5 {; ]8 h0 Z( }* j% l% s( G从你贴出来的代码看 应该是没有问题的
% y' \! r0 }0 h' x
追加一个问题:我先在的中断分配如下:- Z6 B' c" x0 N. u3 U2 f
4:VPIF0 t3 ]% g% n6 c3 a  x
5:LCD
' e- m8 U! z; j8 o: W6:GPIO Bank0
- a5 r7 X6 ~( U) }. J8 R" M8 y; i7:GPIO Bank6
8 C+ z, p+ G/ |6 F, v8:GPIO Bank8
+ S9 |2 a. L0 U) V: j9:timer& H( n( f7 w6 d  o
发现运行后,要么VPIF的中断有效,要么GPIO的中断有效,不知道是什么原因?

点评

不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了  详情 回复 发表于 2015-7-2 10:44
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
地板
 楼主| 发表于 2015-7-1 21:44:29 | 只看该作者
搞定了,把初始化这部分函数忘调用了……
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
板凳
 楼主| 发表于 2015-7-1 21:10:50 | 只看该作者
希望缄默 发表于 2015-7-1 19:42
' l1 K8 _% l6 W. o# I' k; p从你贴出来的代码看 应该是没有问题的

3 F1 ?/ S+ n7 A3 }4 l还有其他要配置的地方吗?比如pll什么的
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-7-1 19:42:29 来自手机 | 只看该作者
从你贴出来的代码看 应该是没有问题的
回复 支持 反对

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-8 23:45 , Processed in 0.042960 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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