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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8110|回复: 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?我现在实现代码如下:
9 j1 b  B3 |5 I# i) m* }* t+ Y& p        //kEY GPIO set
, B) q/ R% ?% ~( _- Y$ H2 z0 w9 s" q        GPIOBank0Pin1PinMuxSetup();
6 t$ Y3 p4 o* X" l6 W, i        GPIOBank0Pin2PinMuxSetup();. @  m5 G- [# S( s: M
        GPIOBank6Pin8PinMuxSetup();7 b$ {1 a0 l1 |% @; [/ f4 Z3 ~
        GPIOBank6Pin9PinMuxSetup();
# c! l$ l' {1 y' L. ?) l( C        GPIOBank6Pin10PinMuxSetup();
, c* p0 H) J" E  D, }% Y* t        GPIOBank6Pin11PinMuxSetup();
5 t# m! u/ U& M/ B% d7 O) }. \        GPIOBank8Pin12PinMuxSetup();
: c6 L8 [, X6 R% y  M        GPIOBank8Pin14PinMuxSetup();
6 F1 t3 Q4 C. R! m& ^        GPIOBank8Pin15PinMuxSetup();9 l' U7 z* l6 P1 W7 F
/ h  {* g/ t2 h8 Y+ d
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
4 }7 M! X; ~8 S3 k    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);- @$ Y& a: k9 q3 m9 f' h
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
5 Y% x5 r$ Z3 {8 M    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);; F$ f1 B6 `8 F' g
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
4 C8 S1 T" q8 l% W4 J# c    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);; |  i0 J4 W9 V3 C! k3 b7 s
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
  I3 p. q$ C" p& w4 P, p) Y    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);6 F3 b9 J% u8 I! Z* e
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);! [3 B5 ?5 k% m4 V: f$ ~
/ L8 t3 v% D( p! C8 e8 t

! t( f  J" U6 R2 M        // 底板按键中断7 I7 r& O3 @: K$ f
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
. _/ k/ z$ M, s9 J    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none8 B3 q# J, L6 c: k4 V1 ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
' r5 p# U3 j# T) n, w    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok2 |+ w. x/ ~$ U5 {2 Z' f& ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
6 h, f3 t. H& Y    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right% E; L7 R7 C7 _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
+ I% \" Q% e8 k0 a6 }0 |4 p    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel' J  `, Z7 O* D: i& j/ W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm& t! W: b6 ], u
2 a- t! T8 D' M' B! ?2 v. R
    // 使能 GPIO BANK 中断
, l' u: l+ _8 E7 L    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO01 ~/ ]$ i  t- v" A7 h7 u
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
# O8 _" `* w; y- M3 @    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
6 F& S; i" R' D" z) P$ `2 P8 t3 T9 d& H& b/ t6 y0 R
        // 注册中断服务函数* @, j4 `( C5 s2 |" o2 N) T1 M. F
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);) C4 T$ @9 t8 r
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);$ w) }$ D8 k4 u# C% C6 B, R
        IntEnable(C674X_MASK_INT6);5 O) ?3 |$ g1 j3 s3 Q- L, d% s

$ t3 w; \! X& G4 S9 E5 r4 v5 j* Y4 U        IntRegister(C674X_MASK_INT7, USER1KEYIsr);# V/ i; I0 P% F; ~
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
" M# {- U" t' k$ ^8 k        IntEnable(C674X_MASK_INT7);
% B9 H) c( f. _: Y7 C1 L
7 \+ K) o1 \8 t; d1 e        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
2 r6 ?& E5 j4 o$ u, B( \( \- p        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
$ D, ~; R7 k' S$ b( P& o5 k( U        IntEnable(C674X_MASK_INT8);" {, P: P4 e+ n$ h/ X6 d) ?
但是现在收不到中断,请问问题出在那里?谢谢, l7 f9 ^9 @) T7 a. }: }& g$ Y
分享到:  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" x1 v- B+ F: q- q
从你贴出来的代码看 应该是没有问题的

! q& J2 B* W& I( u还有其他要配置的地方吗?比如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! E! @! f0 P  f, o' ?8 `5 x+ {
从你贴出来的代码看 应该是没有问题的
4 \2 U- y; V7 k9 }" _
追加一个问题:我先在的中断分配如下:
. K5 r; F; G( C+ T. F  j) G% A4:VPIF5 [2 w5 W' \% I0 V, E" b
5:LCD% H; U4 n0 U* }* R3 H6 V
6:GPIO Bank0$ W# w5 m; }$ Z. H, v
7:GPIO Bank69 h5 P1 l# u9 {3 [( ]/ F( f0 P4 u' i; Z
8:GPIO Bank8
2 P9 A3 Q- U$ C/ c; a4 Y* x) e9:timer, C$ `% h  B  B/ X& e
发现运行后,要么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:244 E1 V7 {/ r8 \6 v6 M
追加一个问题:我先在的中断分配如下:5 H- z! K4 |) @! F5 R/ I: F
4:VPIF% t1 a% q7 k7 ~: x( V0 `
5:LCD
9 _0 u% \1 _$ z0 D' ^/ ~
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
/ y* H4 ?& [% i8 l& w/ s, ~. |不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
( F, t- F; H  F" R' w
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 17:42 , Processed in 0.043162 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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