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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7380|回复: 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?我现在实现代码如下:
# n* H7 {' E! a4 X        //kEY GPIO set, C8 v% [4 a) p" g4 E
        GPIOBank0Pin1PinMuxSetup();3 M0 f. w4 w: V8 _" q
        GPIOBank0Pin2PinMuxSetup();) g8 e9 e8 p& s4 X: D
        GPIOBank6Pin8PinMuxSetup();
9 k. G& H( s; d4 U0 `7 {        GPIOBank6Pin9PinMuxSetup();# t' A( J" `5 d/ H+ M- }5 a! O
        GPIOBank6Pin10PinMuxSetup();
2 w8 ^; M; }3 M6 `        GPIOBank6Pin11PinMuxSetup();" U' j- G- y3 c2 k8 s
        GPIOBank8Pin12PinMuxSetup();
9 S$ B* E' ?) {9 W        GPIOBank8Pin14PinMuxSetup();
! c5 W% }: W/ b* h( Q2 _  K        GPIOBank8Pin15PinMuxSetup();
9 x% u  Q9 i# f# n
2 I& c9 h/ u7 [% ]7 H. L0 A1 ~0 v; W    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);0 B3 z1 U! N1 z& D: b; ]
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);! b1 [: U0 Y- d
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
( m/ v/ T( S- w( l! `( E3 `  }5 D    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
6 ~; b% _9 u. K! [9 r/ h$ U    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);9 v$ g: `& `6 R
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);: N6 h$ A' W3 b& t7 P, F( n
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);" w5 r5 |4 S$ j( P" f
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);) L0 N3 q+ e) ~( U
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);- I4 G! P8 X$ ~" u+ L7 N7 i
3 W) l" K/ A# A$ E

' ?1 V# A$ |( @' A4 M        // 底板按键中断* g- J, m  c" h0 h3 _8 [! f
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none' u8 m- W- U0 x, q6 Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none! P" y; H3 Y( {2 D# b: G) Z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
$ {0 V! ]8 C+ C$ N% }    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok. W8 r+ u  h& ^; X1 j
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down; v% i$ X( U: N" {9 C# X+ ]: b
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
/ t! ^1 O& b: V% d, u# z! h    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
+ J; `) I% v, q    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
" c$ J5 P. b* N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm5 M2 F+ A5 G5 r7 c& B' L- I
& S+ T' g! |, H( f3 Q
    // 使能 GPIO BANK 中断
1 f, e' I& I" N" D* Z* N0 i+ P    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0# q: E6 @+ m& I- I/ c- o8 y
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
6 Q' V6 s) r2 [; E" `    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
4 s+ B* ]6 M/ u% X9 \" R1 |) |, Z9 X# q7 O( P7 Q( V0 N7 `" _- X
        // 注册中断服务函数
* E4 h& u  p' Z        IntRegister(C674X_MASK_INT6, USER0KEYIsr);$ J4 o) O( y, c6 ?; h
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);7 [+ E4 I" c0 o1 I! ?/ p
        IntEnable(C674X_MASK_INT6);5 g9 C3 M6 P5 K. l6 K: k4 U
( a& t0 K0 w6 U7 w  h
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
( N; m- x: @6 i, q9 N) w. y. }# {        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
* V+ s& ?! z6 T6 N/ X        IntEnable(C674X_MASK_INT7);2 f; }- r: {9 y; T/ ?8 j, ^
& z) x4 P5 \: p; V- \
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
# n/ M2 g  u7 C/ b+ I7 z+ G; G        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
' l( w# V% h# C9 H) z" m        IntEnable(C674X_MASK_INT8);" v- T8 X* T. w: w
但是现在收不到中断,请问问题出在那里?谢谢
7 N0 L7 m  p4 M* q& o
分享到:  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; i5 p1 A1 |! a# q- d2 Z$ u) d
从你贴出来的代码看 应该是没有问题的

/ j: {9 W9 G  {8 ]8 L$ E还有其他要配置的地方吗?比如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
. q/ m0 s$ k6 W; U4 d: K7 Z从你贴出来的代码看 应该是没有问题的
$ O0 ?: Q6 e9 J; q# z" D% _
追加一个问题:我先在的中断分配如下:' G7 B4 t. O) ]+ m
4:VPIF) u3 g2 ?2 Y& K% w7 [& }) ?
5:LCD
( P, ^, ~! h7 O! P2 R6:GPIO Bank0  @! z! W7 W# [$ p! s
7:GPIO Bank6
; g2 `( l7 n1 P8:GPIO Bank8% F5 ^) Y' D: l8 A! }4 ^$ W
9:timer
7 j5 `! j% k/ c5 r( v7 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
7 R; J4 E5 F& ?追加一个问题:我先在的中断分配如下:. e3 u. m* a5 r) H: v- _  M1 |& L
4:VPIF
3 B( K  O7 x* U5:LCD
# I9 q% d- s0 K2 o& t
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44+ z  A* f" k3 ^9 X; e4 _, ^& m
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
( Y. x3 t  M/ m, Y7 C7 l' R! N
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-9 18:33 , Processed in 0.046786 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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