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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7324|回复: 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?我现在实现代码如下:
* I5 x" j3 ]  H' n        //kEY GPIO set
% S% u3 S( s5 d% W9 `# ^        GPIOBank0Pin1PinMuxSetup();7 D1 \' I0 {  D+ ^2 L
        GPIOBank0Pin2PinMuxSetup();
2 k$ t$ c" Z6 r; h2 Q* I        GPIOBank6Pin8PinMuxSetup();
1 M$ w) w" c1 D5 }2 }2 N7 x4 g        GPIOBank6Pin9PinMuxSetup();! n: D7 I% R  I& P3 _( x, [
        GPIOBank6Pin10PinMuxSetup();0 p6 n7 N' n) V7 O- A
        GPIOBank6Pin11PinMuxSetup();
5 E7 j) \2 I4 t$ T        GPIOBank8Pin12PinMuxSetup();
5 V5 r- t1 _, h, O1 q, e* ~        GPIOBank8Pin14PinMuxSetup();
( \4 g* W; M. ]; L3 a        GPIOBank8Pin15PinMuxSetup();
$ n) y8 R. t3 d7 _- T" [6 @
6 N# x. m/ j" l1 y, y3 V. ]7 z6 G    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);* b2 W+ H. X$ I8 R
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
6 m) [/ ^1 o. p3 u$ N; t    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
# _8 \/ Z- p/ a: m8 _    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);* u* ]9 I  o# H3 _+ ]) h
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
0 E0 q/ T9 I& x) j    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);* Q1 H% q6 I- e4 {1 w4 ^" F
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);- h6 j& U' {8 J5 n8 x  [: d0 Q
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
6 M" R* O, e3 U) l: f    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);3 j7 U" J4 b) C6 T! A5 o# t

& K, _* p" }. s( v$ o
, s& f# u" F5 t$ n  h7 ?9 o        // 底板按键中断
: y% x: V  Q! S# \2 |' }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none* n, @/ ?# U; f3 r0 @, ~' C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none4 u7 P1 {1 l6 f) O; _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left) ?( W; A" ^1 ?
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
1 {; X; x3 U, ]: L$ S    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
5 y4 H7 ?. ]' C7 P( p2 a* p/ P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
& M, t% j9 j) Y4 |& {* H    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up* y: _* B6 V( T4 O& e2 @
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
5 E8 U4 N7 U' N: {6 r4 _. G! V    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
$ H( M8 a9 j1 q7 r6 B& Y" [/ _$ I7 R! l- z' C4 e
    // 使能 GPIO BANK 中断
6 v5 X4 U* g: p' X    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
8 Y, d6 Y( ^5 T" k' c) m# V    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
" e% ~. d4 {, p5 F7 m5 e1 n    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
* O6 {' K' p& R7 T3 w+ e% l
  W$ f4 l8 M: o# O! |        // 注册中断服务函数
. {6 C6 w3 q7 c+ s1 w- ~, \        IntRegister(C674X_MASK_INT6, USER0KEYIsr);( w: ?+ D2 G/ q" G1 l
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
8 K( f+ ~' ~; Q( _& {; g        IntEnable(C674X_MASK_INT6);
, w; h# {# o+ ~! E
2 O3 o$ {; p7 d3 j, X        IntRegister(C674X_MASK_INT7, USER1KEYIsr);) X) x5 M3 r: u; C: r
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
( f4 l2 V, B( ?. H: j+ z        IntEnable(C674X_MASK_INT7);
4 ~* X* a& ]) E2 X- t) y$ ~( G) e0 {, W1 l
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
6 S5 c( M- ?& z. J9 U        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
1 c( c+ H1 I6 p( u% F8 ^        IntEnable(C674X_MASK_INT8);
* M$ N$ m: R7 z5 E3 a- _6 R但是现在收不到中断,请问问题出在那里?谢谢. S* Y" P7 s* n5 V5 N$ H
分享到:  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:423 o4 A+ u$ y" h! Y/ _
从你贴出来的代码看 应该是没有问题的
: E- o. {! X( g) 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 o: R1 C' ~% v& N. W
从你贴出来的代码看 应该是没有问题的
1 f  C# A+ |% Q/ ?7 Z. `* v
追加一个问题:我先在的中断分配如下:
4 k8 Y( f7 M% D+ S, }+ l4:VPIF
) v" h0 \- R( X5:LCD6 W2 S" y0 h' h  ]; l7 O, ]% K( c
6:GPIO Bank0
) W# H0 x2 @7 P- }7:GPIO Bank6
5 v8 P6 K2 n4 i0 a4 Q" x$ Z* d1 O8:GPIO Bank8
$ Z; }5 U7 `! n- ?! T. O+ e9:timer
+ g4 x5 `7 R5 k3 t发现运行后,要么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( p" J7 Y. m8 j8 Y0 x
追加一个问题:我先在的中断分配如下:' l& K  Q6 c5 W* L; q" W- o8 V
4:VPIF" |- H1 I7 Q1 _4 _& i' e
5:LCD
) z$ {1 \; _, A! F2 e
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
% d' }) a+ ]2 ?1 a& @不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

, T. c: x- S+ g: ~6 U/ b1 R8 G恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 13:42 , Processed in 0.044975 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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