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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7320|回复: 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?我现在实现代码如下:7 |. k6 {6 }7 ?; g# i. Y# M
        //kEY GPIO set
+ u* P- o- c, w( T        GPIOBank0Pin1PinMuxSetup();) U8 p! W# h  z# g& o/ ?4 W
        GPIOBank0Pin2PinMuxSetup();* V7 e) D8 a, B% i4 P5 y7 [' R' n
        GPIOBank6Pin8PinMuxSetup();
2 m0 N7 P4 t" H% z( c$ ?5 [        GPIOBank6Pin9PinMuxSetup();, ~8 U# z! F0 O9 Y; z: A
        GPIOBank6Pin10PinMuxSetup();. d+ }6 ~- x7 d# o
        GPIOBank6Pin11PinMuxSetup();% I! E) c; q- i/ k
        GPIOBank8Pin12PinMuxSetup();
1 X# _) i* X6 ?6 N! d. N1 I  n% m0 \        GPIOBank8Pin14PinMuxSetup();
1 X5 y' u2 w& q$ `% s        GPIOBank8Pin15PinMuxSetup();
" D+ g7 x- h% M1 Q2 F  s3 k6 {- E6 s/ q2 l& w4 d
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
7 `; R% ~% ?  v( J0 }4 M# K    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
/ i; V% w; B+ b9 p9 [. K    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);) j+ o) y1 k6 j* o. G
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);& L+ L% O* p9 P) ?2 D
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
  u  R+ R) Q: }' b( M, w8 F8 c    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
# k, [# J7 K$ ^& r5 |* u- E" ~8 i    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);; O8 a/ w' f- |9 a6 k
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);; d" w8 a/ p- B- i
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
1 H; R+ J: R7 H3 Y" ]4 T$ m' {4 [* ~' N9 H  \; ^
' b8 f' }. Y- D9 H
        // 底板按键中断" R1 `6 c) f. _" `5 `8 m4 n. Q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
9 U1 F( L0 i3 C, \0 G& ~# l# ^    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none4 X5 }3 Y3 j5 t1 ^, d$ F7 A/ I
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left3 ~4 q0 Z; i% O" a! w+ Y
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok4 `. c' |0 Z9 n2 X# o+ e1 m5 j
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down0 U$ ?- C# ~1 J! m; V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right* m* ?) H- d" z& y- o7 `  V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
. R$ ]& g% R! g! p. Q. g    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
1 e3 N" w; `; P5 p4 u    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
5 r. _4 k; T# V: i! F; t9 ^. c6 G( a' a' `/ I9 q& k3 l
    // 使能 GPIO BANK 中断! l' Q. t8 i9 ^
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
# f) k& j3 y4 x# Z% Q    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
4 L; ?1 j# v" l+ ?- B) u    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8) r( V# r' R+ k) F5 x

) \$ [: c( `7 m/ e, R, u        // 注册中断服务函数9 e% b* z+ P, f9 i' |
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);  d2 E, S/ y# J, J( T. h  P7 g
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
, R% j- b" m- {; g4 [        IntEnable(C674X_MASK_INT6);
( l  q/ C+ @0 J
; E! o9 o# l9 O% P) {3 n        IntRegister(C674X_MASK_INT7, USER1KEYIsr);6 i1 R' @6 k+ v  i8 v
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);# J0 g3 r$ d' O
        IntEnable(C674X_MASK_INT7);! H& I" n* A& w, S

* W2 t- M: n9 O: a' q' T; z        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
: I' d+ l$ m3 [% c: Q        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
  T# K- F: n% V6 r5 r; X        IntEnable(C674X_MASK_INT8);, {3 V! a% s, u; N: h0 f2 k% P: G
但是现在收不到中断,请问问题出在那里?谢谢
% w3 A" I: ?, ]* m$ y
分享到:  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+ W& ?5 t/ ]9 X- \
从你贴出来的代码看 应该是没有问题的
- q' f. ~- C& H' T; K
还有其他要配置的地方吗?比如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
2 W; o# U1 n# ^! [从你贴出来的代码看 应该是没有问题的
( w( U5 y" j* J' _  K* p5 ?3 v2 [* I
追加一个问题:我先在的中断分配如下:3 U$ I: ~1 A7 x$ B* B8 K& G) `
4:VPIF
$ r& g: g+ V* w# |5:LCD4 M! ]! C+ \" ~3 V) z
6:GPIO Bank05 v" C& N' S4 L' Z
7:GPIO Bank6# I& s4 I3 n: f% r) w5 @
8:GPIO Bank8( y$ `0 [2 y8 x! ?! U
9:timer/ {) r8 }, x& s/ H. m& ^. D; J9 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:245 y& @0 o( |% L. w
追加一个问题:我先在的中断分配如下:
* Y, c" G& [" G6 e4:VPIF
2 ]. p. s; ~- W! V# J1 @! ~5:LCD

8 E3 h8 a, r" k+ J不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44" u4 \2 N% w0 y2 Y, t( q! L7 C
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

0 Y- \3 b9 ^9 H2 l# u5 G恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 11:51 , Processed in 0.040316 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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