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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8116|回复: 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?我现在实现代码如下:# q0 H- `; q5 ]' X# b- a
        //kEY GPIO set4 Q1 |/ \- E+ L& K7 f# O
        GPIOBank0Pin1PinMuxSetup();( r  l# q* P/ \6 K! e. H
        GPIOBank0Pin2PinMuxSetup();) F2 p( t7 U. `$ Z
        GPIOBank6Pin8PinMuxSetup();
& x3 z1 U2 w9 q; m6 ?        GPIOBank6Pin9PinMuxSetup();
$ P+ R  Z5 m8 C        GPIOBank6Pin10PinMuxSetup();
9 p$ Y! B2 v" A5 U8 _  F        GPIOBank6Pin11PinMuxSetup();' l" ^+ ]7 }# d9 B- C6 E
        GPIOBank8Pin12PinMuxSetup();: t  B4 C6 x5 w& l% F) H
        GPIOBank8Pin14PinMuxSetup();$ s8 R& ?* }" `4 L; Q! g
        GPIOBank8Pin15PinMuxSetup();
; s' F: D1 r1 i) T% H0 @/ Y- U, O2 {
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);6 A, ?" d  x6 E% I+ X9 L) k+ p: B
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);/ U! l# m2 r' X2 L9 d  {- Q
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);' k2 R8 d, ^& ^! b7 a2 b
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);( n) R# \/ X, P: ?4 U2 X$ x/ o
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
/ G5 h7 T$ z" @1 H+ w, [+ D    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);' _+ ]2 R5 g2 b) E5 v# h8 D7 ^
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
" x& J. k3 t9 a! i! H( F    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);! o- p* U+ e! _- [
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
( S9 f5 Q! F6 D0 L! ?1 s, r& y3 l' j  ?. z- |9 d5 `3 M

- j2 l' M6 z, z. U3 i        // 底板按键中断! s$ p3 w) Y( C" ~! B% |
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
, V! v5 l* o' v. v+ j6 Y    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none& P3 M) ?6 g1 |: i0 q0 j4 R" t
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
; @% a. S& k, {6 z3 p* U    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok- f5 Q) C* ]+ I' o+ ~
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
7 O9 ]- E9 r/ H6 ~    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
. N( }4 m" U" ^$ a    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
& K) d8 s- w7 T) A    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel" R$ p& H  U2 w0 p
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm# ?1 L! |5 ?$ U0 i) V, O
* W% C3 V7 q" W) e  G' q2 ~
    // 使能 GPIO BANK 中断5 R& J& B8 I+ o& }: D
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0" y9 X0 p0 l) C
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
3 ^1 O; t# V& q- i7 e& f& E    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
/ e( f3 `/ C1 [4 z& m# k, `+ p2 j& X* r" r9 A
        // 注册中断服务函数
' \) C0 `( Q# `' C) m        IntRegister(C674X_MASK_INT6, USER0KEYIsr);6 m) Q9 I9 P/ a' P
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
( Q" G& G7 s8 |8 k7 m        IntEnable(C674X_MASK_INT6);* H) `9 ]* |. C! O9 [
& r/ m: n2 \5 x
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
+ g" ^' k% p2 H* ?6 W        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
2 t# ^, A2 I8 {7 R( H# ?        IntEnable(C674X_MASK_INT7);
& _4 }- a3 K6 ?* ?! `! ]  N- W5 {
( J9 L( D0 w8 s& O# J. m* V        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
& E6 O  t: x9 v, i! g# D1 c& _        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
  j# |: D7 E- `$ z& m) o        IntEnable(C674X_MASK_INT8);% U% K1 p5 e$ Z4 ]
但是现在收不到中断,请问问题出在那里?谢谢) d$ h9 H( |; V& p8 {3 R8 T  Q
分享到:  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- C7 ^1 t6 C4 D
从你贴出来的代码看 应该是没有问题的

/ L* Y2 t& Y+ c. b还有其他要配置的地方吗?比如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
0 p+ |- x  t% j: q/ J4 o从你贴出来的代码看 应该是没有问题的
7 U$ U7 L1 C% U7 L! S$ A" u6 o' ^
追加一个问题:我先在的中断分配如下:
! F) r& E8 c" x  G2 {( w" C7 _4:VPIF' T; ^4 `+ C6 @# Z( D; q
5:LCD
4 G3 f1 _, K4 K1 o* E; Y6:GPIO Bank0
# J1 Q3 i  h8 a  Z4 J! ~5 T# n% @7:GPIO Bank6
) e: N; ^* e# B* i2 b  y# R2 {8:GPIO Bank8  T1 b8 ?1 K2 d; E
9:timer3 U/ j$ S" V( d$ ^# h; l0 D9 t8 c/ c
发现运行后,要么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
0 V, H! L$ u+ H( t' m- t+ `追加一个问题:我先在的中断分配如下:
4 Y! O4 b: y( T( g( j& C' n0 U& d0 G4:VPIF4 Z% K% {5 E1 C
5:LCD
4 D* i: \( P0 Y) S- X2 k1 y
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44  Q; k/ P, {1 \, f( [
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

3 S" z. s/ r8 x, q  F9 ]9 A! [恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 06:22 , Processed in 0.045103 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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