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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7228|回复: 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?我现在实现代码如下:2 r6 P) Y1 a4 o
        //kEY GPIO set
( O/ T- v; f+ d( x* j/ t        GPIOBank0Pin1PinMuxSetup();
- J& N3 u& N' ^        GPIOBank0Pin2PinMuxSetup();1 N* ~  f4 N, [9 X
        GPIOBank6Pin8PinMuxSetup();% D7 u: n6 `* s1 K7 z5 \6 v
        GPIOBank6Pin9PinMuxSetup();/ g4 i( p8 s! w6 W% v
        GPIOBank6Pin10PinMuxSetup();
! }, B/ f/ V; }, }2 X        GPIOBank6Pin11PinMuxSetup();4 Y$ `1 ?3 M9 f* d, z2 z2 e6 w* |
        GPIOBank8Pin12PinMuxSetup();
* g* ~; [6 v" S- C7 U4 t# [- a        GPIOBank8Pin14PinMuxSetup();7 u) h& P4 W0 |* R: U! }
        GPIOBank8Pin15PinMuxSetup();
4 j& k9 G5 q7 h  E; P
# k' {3 r8 n1 T$ B6 L5 F  r" z8 r% H    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
$ v6 ]3 z! k, K7 M* l    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
; G" _2 i% S1 C/ \/ P) a    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);8 x! S: D$ E  ~% l
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);# u/ H  ?/ r9 d3 G# X' b  l. e- m
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);! E: @4 E9 o& B9 _0 b
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);4 @2 h2 h5 s0 n0 y: e9 l
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);$ e( O# Q2 [  S
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
) f5 m4 T& u9 J& ^  ~- v' h* s3 n* {    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
! @5 _' k3 l4 h1 ]  Q/ l" w* J& ?. l, N% f/ P
: h" G6 c) [4 j. h, ]
        // 底板按键中断
5 U/ e7 i4 g& b9 v    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
' Z) o. ]$ C* `    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
3 P8 o3 d  P- \5 x$ F' @    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
( d* z% i- Z$ C( ^: S' c    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
, Z0 c. d4 Q/ m, d    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down" L* p* {% d" _7 D% R1 B
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right5 l. n4 _1 U. ^/ M% o/ m4 {
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
* I/ m: q! Q5 R( R    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
2 W. M1 i0 s3 Z5 F) S' z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm# b. {4 _0 i1 A8 O  y; k

: n0 T2 L; W0 k    // 使能 GPIO BANK 中断
& G) P+ ?: p8 u! o: S5 K  m    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0, m# g! E5 D1 Y' b, u0 q' J. P" v& _
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6, w/ Z& ~; q3 f! t9 A* e3 X
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO89 g+ U/ e# r) Q0 m- R3 [; y) o
+ ]' r5 s) y6 T* T! D
        // 注册中断服务函数. @8 Q8 `( F+ z, U
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
8 y$ N& q' l! G) \& O        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
/ c6 b7 S* y- j# S( @9 R$ A        IntEnable(C674X_MASK_INT6);, \7 a# D) n# U" A$ m1 p& |; N
% N5 ?( n5 E* s& [
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
) W2 c( e0 }2 R( S        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
  Z; H; Z. R+ O        IntEnable(C674X_MASK_INT7);# z' c" V0 B6 X" E) D& Z
+ }! b! M! y/ G3 n# a
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);/ f/ d3 T) Q+ A( s- c1 a% q
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
# E, l( c+ j) F1 Y        IntEnable(C674X_MASK_INT8);
, q* Q; [8 @& d但是现在收不到中断,请问问题出在那里?谢谢  x4 `( ?- W; l  t& M$ N
分享到:  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:428 S+ C7 H, E7 v
从你贴出来的代码看 应该是没有问题的

) w. q5 R+ Z3 y% o$ [  o还有其他要配置的地方吗?比如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:425 ^, ]* B9 _( e
从你贴出来的代码看 应该是没有问题的

$ c: A8 E, T5 i$ y追加一个问题:我先在的中断分配如下:
5 l+ q( J3 u5 r$ b4:VPIF, [7 |# d% w" d+ [, Z  k1 |
5:LCD( F% ^! u& Z. P5 o( J! T
6:GPIO Bank0
: h8 \: @0 Z2 _' @. k% O7:GPIO Bank6' L0 B, E" n; ?- I
8:GPIO Bank85 q7 B% O& q' u! b, W3 E, Y
9:timer
, z; ~& x7 ]2 D  W8 Q8 Y# f/ 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
# I9 J# v0 u0 D% M% r2 d' q追加一个问题:我先在的中断分配如下:+ C3 ^" x  f8 V5 i5 }/ W( T
4:VPIF/ j% e  j6 L: a) k
5:LCD
  J) \0 V  O  Q3 G0 Z0 E; b1 W+ ?
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
% H; L% Y/ y) y5 F不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

. l8 T, T8 l) m: n7 u$ g恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 09:06 , Processed in 0.039260 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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