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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7992|回复: 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 k% u1 \+ Y, H* d2 M
        //kEY GPIO set1 T2 T; f. ~- H- v+ n  |$ F0 D5 U
        GPIOBank0Pin1PinMuxSetup();
/ O7 Z4 e8 h& \! p5 D. A8 E        GPIOBank0Pin2PinMuxSetup();* f1 x8 C* ?+ l! n# ~/ x
        GPIOBank6Pin8PinMuxSetup();& F( v- k% r- G6 q' Q2 s
        GPIOBank6Pin9PinMuxSetup();
4 ]* {' Q1 w+ q' j- F' C$ \. p5 Q        GPIOBank6Pin10PinMuxSetup();+ R/ W2 A! X5 T  ]5 R9 ?: j
        GPIOBank6Pin11PinMuxSetup();
) @" H: A* z9 w2 G9 t" g) ^) M        GPIOBank8Pin12PinMuxSetup();
1 n" f1 B: {/ l$ c+ ]3 s        GPIOBank8Pin14PinMuxSetup();
% R5 t" V- j0 g$ T        GPIOBank8Pin15PinMuxSetup();  J9 P- }+ J5 J/ j3 Q  u

( Z+ J* D8 N* e6 g6 u1 ]    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
$ a& h& \# F) [! ], s( `. h    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);' y( u7 w4 P  V0 |+ z2 u
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
+ z- C6 {  R5 ~1 z7 C    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);5 ^, h! {4 S4 z8 P0 ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);7 g  ^# G1 V! I% W$ {0 B- p, w0 @# ~/ e
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);' q; d" ?) t0 d* ~
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);! `$ _5 }; Y: A/ W- ]" R
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
  j& Q5 }* ]% x6 E    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
6 W) S  [# u4 ]  x7 ]/ j. B' d) b4 ^$ y5 i- [* A

2 g' X. T7 u4 |7 Q* U- K' w9 B        // 底板按键中断, g' \0 `/ d& t! ?( Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
) w4 K- w4 I2 L  U    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none7 a+ Q' ]* G, u4 f
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
) p. J/ l0 V8 a5 `8 b- v    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok0 ]4 d! R- y6 D! w
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
* W6 |7 G, L3 M/ U    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right6 F% p) q" n' S8 Y
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
; W9 d8 f! L; p2 R0 ?0 a# h5 O2 G" o    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
$ G. h% N9 K3 F    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
& r. _0 W" o  F
# b, m$ K" U3 T8 w# e4 M8 k    // 使能 GPIO BANK 中断
7 R7 `) w8 N9 g, [9 e    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
( S  X. v( u0 p2 Z    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
! |% F* @' X. ?    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO87 x; @6 v9 F7 E

! X' s! Z& p( {6 U+ [" U        // 注册中断服务函数: i# _3 o7 _" V* n1 e; S0 x
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);* l7 l+ \% F0 G5 J& \  q4 r+ {
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);; F3 V4 ]5 W) L) ~
        IntEnable(C674X_MASK_INT6);
7 d' d9 p, g9 Q/ m% Z% S* i/ \6 f
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
- V! d. i2 j, _6 ^7 u, B        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
& C- }: J# M- A+ e. G        IntEnable(C674X_MASK_INT7);! w4 R& j5 H8 [

" f5 T- ~' k7 S5 r$ f: X        IntRegister(C674X_MASK_INT8, USER2KEYIsr);4 H4 a2 |" ^9 Z% D. M- T4 t6 v+ |
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);0 z- v% l" V" c, P# \( h
        IntEnable(C674X_MASK_INT8);
. G- L% y% c; }+ }: n* p但是现在收不到中断,请问问题出在那里?谢谢3 v8 c( v# Z; V# W4 |. s
分享到:  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! n- }8 x8 V, `/ o7 {1 g$ G' H1 P
从你贴出来的代码看 应该是没有问题的
6 _% y  v$ F5 d$ R3 `
还有其他要配置的地方吗?比如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
) h. Q* s( R0 ?( k; l% [从你贴出来的代码看 应该是没有问题的

& U7 \) ~2 \! @+ l1 Z追加一个问题:我先在的中断分配如下:
6 O  j( @: {, n' l8 q: I% V4:VPIF
, N: y4 O/ b; i9 {" ^4 g; i5:LCD
  n9 k# ?* G1 L9 a2 B6:GPIO Bank0
  O1 D1 D+ _# }6 t9 T7:GPIO Bank6
8 J2 a4 L8 B1 l6 `8 J8:GPIO Bank8
3 _# Z4 u+ Y3 X' S8 w( a8 N9:timer6 S; _" L, e$ I5 i
发现运行后,要么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:249 _+ t5 d  Y& l: E) E7 w; I" H6 R+ _
追加一个问题:我先在的中断分配如下:8 m5 c0 K; d- O9 ]& E) J) t) F
4:VPIF* e& D' d* X" O& m
5:LCD
" w* h" z9 F1 C
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
3 y0 r* S: E- ?4 J" S; R" |不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

0 y8 Y$ O8 n# P+ Q" z+ E- R  D3 w+ J恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 23:38 , Processed in 0.062698 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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