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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7426|回复: 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?我现在实现代码如下:
8 P3 J6 i+ @/ C) s8 e9 V+ [        //kEY GPIO set
5 Q$ ~5 i6 L9 `: @+ L+ `/ s5 R2 b$ F, E" X        GPIOBank0Pin1PinMuxSetup();9 F& ~1 u$ v. @. ^8 }
        GPIOBank0Pin2PinMuxSetup();
) v/ f% K$ Q9 w! T) B) A; h0 _        GPIOBank6Pin8PinMuxSetup();4 R" ~: a) s2 w% p8 X; u3 C
        GPIOBank6Pin9PinMuxSetup();7 B: ^, j, k) t7 l- x
        GPIOBank6Pin10PinMuxSetup();6 i  Z  l" T3 z" r4 f) S: y+ }
        GPIOBank6Pin11PinMuxSetup();
4 Y4 @: @; X' @7 h3 Y; I2 k        GPIOBank8Pin12PinMuxSetup();( I# `; ?$ N7 |2 \( G) A! F: F. d
        GPIOBank8Pin14PinMuxSetup();
' q( Y! o# \2 T; Q0 R        GPIOBank8Pin15PinMuxSetup();! ^; @$ u% E2 W& G) U3 a7 @* k

6 {3 c% h! ^0 i1 c6 F! s. A    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);  L: v+ X1 q% c0 P8 W
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
" q, n2 r# @1 K  T9 k' R; ~# r: l    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
/ e: @6 f2 F$ ]7 X/ m    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);# a! u- s# ~4 a! O0 d
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
  e0 _# h/ w) a. r    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);8 \$ i+ y4 D3 q7 Z
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);" Z. n; _) }& u, J. Q2 R) W
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
8 L5 j; T5 P* J. a0 S/ {    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);  X) T9 j! k5 r6 ^1 l5 J

* @& K8 @0 ^3 ?' {4 {* E8 K
7 N" w! D* t: |. G) }; L1 u6 S        // 底板按键中断- Q" k; d( `& O4 X5 D) [% R# K
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none7 g! M% }1 r5 `( n4 Y
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
5 i+ v2 p. D, R9 q7 Y. K" F) Y    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
8 K) d9 I+ [. V% M* R7 v1 _, p    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok' `+ f% f( c9 a8 O6 R% V0 Y7 X
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down! r, i" p7 {% E; E1 A3 T
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right- F/ p  \$ k9 ]- ]; h* g
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up2 @* i+ v5 F) F! X
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel( g! Q. X  v% O  g+ U% K
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm0 w% }( E! H2 ]) I/ |, b
% d$ n. Y2 n8 {$ z' ]  s
    // 使能 GPIO BANK 中断( M$ W$ S1 S+ @' _/ V6 ~
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
; P, _$ W% s2 `    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
1 |) g7 B7 J3 I9 h- K' I" K( X; z    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8: Q( y$ O4 J' J% s( L$ i8 K
; D* k" A- F9 L# ]0 K
        // 注册中断服务函数
% ?* P8 m. K9 x9 t, _        IntRegister(C674X_MASK_INT6, USER0KEYIsr);3 t. a6 D  d- H/ g, g" {
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
6 c) z: A3 b) ]) ?        IntEnable(C674X_MASK_INT6);
) C( G2 Z8 T7 s0 `' U  T9 F1 p2 `3 N% ]# a1 a7 w8 l
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);* B" S% g( j% A' R) }% W- h& S
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);7 ~! m! }9 b8 t8 ?% [, W& O5 K' b, {3 C
        IntEnable(C674X_MASK_INT7);$ z1 ]3 Q' M5 ]  \9 b: k% p
- @2 G9 q" r% D/ W) ^
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
. s' Y* }5 I# h        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);) H$ f" M# @  s' i" i( r. a
        IntEnable(C674X_MASK_INT8);
4 m) g; {+ n& E! {4 u7 P( r但是现在收不到中断,请问问题出在那里?谢谢
0 ^' R) n+ b; m, N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2015-7-2 10:44:26 | 只看该作者
bit0rain 发表于 2015-7-2 01:249 h( ~! c9 ^" \2 P: m
追加一个问题:我先在的中断分配如下:5 H$ N, E3 f  Y6 q# s
4:VPIF
1 u3 @3 T; H7 q, W9 |) q7 G5:LCD

* K' ^# F0 t+ Z+ [! Q  V1 u$ P不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
5#
 楼主| 发表于 2015-7-2 01:24:40 | 只看该作者
希望缄默 发表于 2015-7-1 19:42) N( L0 K% _% Z$ ?7 I6 j
从你贴出来的代码看 应该是没有问题的
1 g; r. r9 c  @3 x
追加一个问题:我先在的中断分配如下:
8 g3 n" C! e( p7 o4 J' q# C4:VPIF2 L& d; E, N3 H. I3 T) f% `
5:LCD; ^: G! M* ^) F, e0 w/ d2 N
6:GPIO Bank08 N) b) p* x# f8 y
7:GPIO Bank6; o1 c1 {/ u6 ^* N- F
8:GPIO Bank8
# A& t  Q0 a; L2 h; D  x+ m$ v6 V8 J9:timer
' j0 e* z- Z. g发现运行后,要么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. d9 i  Q- E7 g$ V: W
从你贴出来的代码看 应该是没有问题的
: p3 A" U  E$ q3 N
还有其他要配置的地方吗?比如pll什么的
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 10:37 , Processed in 0.041185 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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