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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7319|回复: 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?我现在实现代码如下:
6 v% l9 B7 I& `4 ]7 c        //kEY GPIO set! ~8 E$ t6 Z( B; d8 D1 H/ C1 X
        GPIOBank0Pin1PinMuxSetup();! I; V" F/ Q- n1 \  U; B
        GPIOBank0Pin2PinMuxSetup();8 l0 n( a+ f' P" e* Q2 e$ B
        GPIOBank6Pin8PinMuxSetup();
" c9 a4 m- S* f& K# O5 _9 Q        GPIOBank6Pin9PinMuxSetup();
, m) Z- b) G) S0 H! s        GPIOBank6Pin10PinMuxSetup();! }5 J+ F. f! p2 X; }, ?! K7 K
        GPIOBank6Pin11PinMuxSetup();
# W5 F2 K( y4 X) \, D2 G/ ^& l        GPIOBank8Pin12PinMuxSetup();9 ?! G( B. i1 m4 P/ N
        GPIOBank8Pin14PinMuxSetup();
8 b( R- i" i* r        GPIOBank8Pin15PinMuxSetup();
# U) t) k# }6 t; U; ?$ U! M' G! H' f( {1 X
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
; L# Q' ~8 n* h    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);, D) f' ^+ S/ P8 @: I
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
  m3 s) w3 `6 F$ Z3 m    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
1 i3 V4 J2 {7 O5 i* y; s    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);* A0 C; r, ?' ^- c' K. W
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
( k1 p& z& [+ k# A0 f1 }  |    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
; G  N: [; D* P    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);  E0 G" L% I$ n$ o
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);5 Z7 T8 h; @' L2 {) G% j
* |9 K. [( j4 N8 l

/ z0 E, c  ]% o        // 底板按键中断
0 c: o8 x, Q, }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
1 u  P, x! ^6 \# U2 S. M    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
3 E+ ], ~( d3 ]& I8 s( ^) z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left7 I; I, O4 j6 h- }7 h( o6 s4 \0 r
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
' d/ a; b# t7 ?+ U0 Z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down3 X# h1 [3 i& `- B+ O
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
- o' D4 q# G4 T. _+ D    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up% O5 z2 B0 L$ z8 i: D9 j: o/ {- _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel) S9 k2 m6 M+ _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
% x* C( H3 m4 N1 S* D8 v
3 W- d5 w5 i* u! l$ l% ?    // 使能 GPIO BANK 中断% e. M* r  l0 S" Z7 {1 T2 h0 J
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
; K; Y# Q: n# {$ s$ A1 y2 {    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6' W& L2 J0 F4 F# [, u
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8; e4 {1 I; X8 N( [* A2 Y  ~0 P( e
1 a$ W  @9 T: d4 O4 Z
        // 注册中断服务函数  F" l' r0 \# C+ \
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);  E& q: g- E5 ~& W+ z1 p
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);8 @8 }3 U0 G1 g' R7 k6 |
        IntEnable(C674X_MASK_INT6);
( F# f; V2 z' }- e. @; D! l  }" i) }7 }  V, A7 Y; H0 \
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
  f) m/ |! x- L        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
1 T5 t( _9 {% U9 s        IntEnable(C674X_MASK_INT7);5 h( i! r8 o7 n; k

# V/ y. |/ f: p+ u) y; p        IntRegister(C674X_MASK_INT8, USER2KEYIsr);6 q, s; Z- F/ Q) A. `1 F. ^
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
7 h6 @; }1 R  ?  O9 Y- A' n' B7 R7 u8 l        IntEnable(C674X_MASK_INT8);
4 J) P1 ^+ _! o4 j但是现在收不到中断,请问问题出在那里?谢谢
2 m( S' K* n( `( D. y+ I1 a
分享到:  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
" g8 D( o. f2 t3 o& f3 B. d从你贴出来的代码看 应该是没有问题的
) l( V) _- I7 i8 R9 ~
还有其他要配置的地方吗?比如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
( Z( E! `" g2 O从你贴出来的代码看 应该是没有问题的

# Y4 y' i* G. M/ d* W追加一个问题:我先在的中断分配如下:8 ^6 h- a5 s) O! R
4:VPIF
% V  Z" I# v* L; q9 p. `5:LCD% {4 v8 n) H0 ~  m/ f% ^
6:GPIO Bank0
3 g; Q4 t) `5 C- s7:GPIO Bank6- ]1 W: `/ P% |
8:GPIO Bank8* j/ j: R& s* c% X% a
9:timer
- Q* N) v) M+ R" [% n6 D- o发现运行后,要么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$ Y3 l& b' k: w$ V. V8 \$ x
追加一个问题:我先在的中断分配如下:9 Y9 L5 G; {4 R) N
4:VPIF6 @4 A$ U9 V3 }$ d
5:LCD
- ?( D3 o6 L3 o) a# Y0 [
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:446 y+ V" h0 I" U7 e  m9 Z' y
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
: c6 d. h6 W8 E$ |
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 04:48 , Processed in 0.047724 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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