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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8109|回复: 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?我现在实现代码如下:
/ P! z& B- C# H, @2 t& {        //kEY GPIO set' I+ U, w/ {: B2 Q! e2 {1 {
        GPIOBank0Pin1PinMuxSetup();
+ c1 K0 H/ I% r0 M        GPIOBank0Pin2PinMuxSetup();3 m$ Y1 y( A: a. O
        GPIOBank6Pin8PinMuxSetup();4 j+ x3 J/ b. `3 ^2 U6 S# o& _
        GPIOBank6Pin9PinMuxSetup();
* V% c" L8 E: ~6 R% U7 F* r# t        GPIOBank6Pin10PinMuxSetup();& l7 o  |3 V9 u8 x5 x- P! u
        GPIOBank6Pin11PinMuxSetup();
/ M' ]" D7 q9 a# _3 u; w+ X        GPIOBank8Pin12PinMuxSetup();
+ m/ r  G' n/ z0 h        GPIOBank8Pin14PinMuxSetup();
" Y) i/ E* {" N7 w0 A        GPIOBank8Pin15PinMuxSetup();
) p+ \5 E' L' L- {1 R# `" \, E1 \: \, t* ^) c) [4 g
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
7 Z  P/ I$ Z' ~. t# K- l  z8 P. B$ z" |    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
9 `" I- k$ I8 }- P9 G    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
5 l/ T, F; c* v5 q: ]    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
+ Y' K0 u, z, _9 t    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
$ d9 L5 h1 Z0 h, i9 o4 H5 O    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
. v# j9 h# t6 X1 R2 ?    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);* C) W) H3 `: U% Y% u
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
. V( u; E5 J5 ^4 u! ?    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);1 h3 W7 m! J6 j! b

+ ?- r- O; t( S. |1 B; O- u! B# a. k: d- ~$ y1 Z
        // 底板按键中断
9 c. R% ?+ R! i; Y: f    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
4 x, D3 F9 C$ p$ ?; z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none* P, \* N! M0 e# D- H9 X  T
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left; S' W, u' v+ C* d; H. f
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
# Y) F- o2 `+ z1 d3 S2 r; q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
2 d- }& t9 d- Y9 W; J0 o' W    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
8 Q3 q* g" R& H    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
  c6 t1 A: D( R* S$ ~    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel/ T3 V& b: _" ^
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm2 f. S. l$ G# ~! {
4 z; O5 y" c* ?  j9 u$ U
    // 使能 GPIO BANK 中断# S$ l/ `9 F8 J# R+ o. x
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0& |9 Y) u# c/ m1 i9 J
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
6 ]) j3 f6 @/ t/ Y9 k& S    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
" ]. x" U4 L! F1 i+ V7 M  f: G0 y! i8 |0 s
        // 注册中断服务函数
/ o4 L4 I/ |5 q# F, ?        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
" [: q0 Z2 z- i6 S        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
& X9 C) B2 g2 t0 n; |        IntEnable(C674X_MASK_INT6);9 B+ O" A0 ]4 K( D6 K; f( ~# @
3 }# u; y! @( [) _: p! j
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);: ]6 @+ `. f$ u# q' }: s+ I. E$ s
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
+ ]7 b/ ~$ L8 N. K- R        IntEnable(C674X_MASK_INT7);
" N7 E( Z3 J1 A1 U
. S1 F0 v( x8 H1 e- d        IntRegister(C674X_MASK_INT8, USER2KEYIsr);$ B. h7 ~! ^3 r7 h5 @- ]; h0 T
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
) U& Q4 B, o) B" K: K        IntEnable(C674X_MASK_INT8);: ^* {- ?+ @) `6 D1 ~; J
但是现在收不到中断,请问问题出在那里?谢谢
2 X+ v, W1 G" E* Y( ?9 A: X
分享到:  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' F* r& `! u8 `  P* c$ V
从你贴出来的代码看 应该是没有问题的
2 f6 J; S! [; Q& r) g* |/ f& g4 ]
还有其他要配置的地方吗?比如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
& g/ H  I6 H# ~从你贴出来的代码看 应该是没有问题的

* Q* h6 J& y, v. B! Y4 p2 l6 u追加一个问题:我先在的中断分配如下:! _2 Z8 Y0 ^" p% y- G- P
4:VPIF1 D. [6 }' s3 l8 x
5:LCD7 `, Y' l4 r! i
6:GPIO Bank0
5 \* A& h1 J7 J, M& B, L7:GPIO Bank64 c4 @0 q; z0 t+ K
8:GPIO Bank8
6 Z& t2 M3 x* E# s/ x9:timer
! e* j+ ~- z/ |$ C: H- 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:24
, S6 ~/ R8 L5 f; Y追加一个问题:我先在的中断分配如下:; W1 M( `0 x, e" L4 Z* ^
4:VPIF
( P! k; H7 C9 U8 B  b8 A5:LCD
/ G$ \/ G0 r# {! y( H  z$ G
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

4 G! w) F( f/ \* `: a3 n6 H恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 16:05 , Processed in 0.039670 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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