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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6569|回复: 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?我现在实现代码如下:; g9 t- s4 Y0 t$ \% J
        //kEY GPIO set
2 O* J9 C4 N% b        GPIOBank0Pin1PinMuxSetup();0 P3 b4 P$ l* R# m
        GPIOBank0Pin2PinMuxSetup();
6 z# B; i" J# ~, y  `! w2 `        GPIOBank6Pin8PinMuxSetup();
# T3 v, J2 g/ i) p1 @* e1 U        GPIOBank6Pin9PinMuxSetup();
: i4 J, K1 _. n- ~0 f; }        GPIOBank6Pin10PinMuxSetup();, z" Q) z! c  j% R1 e* E
        GPIOBank6Pin11PinMuxSetup();6 g1 [( `+ ?4 T
        GPIOBank8Pin12PinMuxSetup();
# J3 q6 l1 U+ J+ `  p3 \% o        GPIOBank8Pin14PinMuxSetup();
) _0 f  S8 r3 N7 j! r        GPIOBank8Pin15PinMuxSetup();' h! W0 B) b7 A  o9 I; V9 \( q
' c' ?3 M6 h! |
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);0 b; D8 M& c% a, n  [
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);, l2 }+ R7 w# K+ g( Y
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);; |4 H! ?' u% b: _
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
7 o+ W; L0 U" `$ j; p& u- ]% n    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
$ h9 Q, g( Q, X5 c, v6 ^' }/ h    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);+ U7 H; q3 N8 y1 p
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
8 W" a- L" F5 |    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
6 `) W8 m+ w4 I$ t( o7 L% I9 l    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
1 F" H; h+ _: w: L, L+ q! R0 Q, B5 f1 V
3 `! a% j# l; [7 a( `- _
        // 底板按键中断3 b( W7 M7 Y7 ]$ T8 ^! w+ v
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none& a' }) d2 u9 ~
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none' f+ |0 p3 i  ]
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
" q9 o9 j( l1 M! e! `* Z    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
5 `0 p6 V- ]. ]    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
5 l; @& m8 Q2 w/ ]+ L    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
* u5 k0 }$ O$ e9 ~% X  w$ g" K! D    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up) ]* B4 E7 }, z* H
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
! y/ _) ^! z# K    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm3 D1 w" Y8 [% s' {, D4 _9 \

$ s& b% Q8 o. t+ a2 U    // 使能 GPIO BANK 中断5 @- u6 q4 F4 o/ k
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO06 S1 U! _4 S/ j! x, |
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
( f9 p3 X4 _8 d2 Y& r- l7 `  c, D    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
1 \  R9 P- s) w# i2 v- Y! B0 i; j/ L4 M* z7 f: C: ~! [
        // 注册中断服务函数
2 T2 w, T# H' [7 r. e2 |7 `        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
4 B) w2 F3 ^! c* S) F( r        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);4 X% h( X8 D' K2 o3 w; k7 |- X
        IntEnable(C674X_MASK_INT6);
8 n% e. f2 U2 `: U; o$ l! @% I
2 }- p0 q# ]0 F# F5 G( \: t        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
3 @5 r8 v3 o' g9 ]8 a3 T6 i        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);* K- d; n# e, \8 A- ~' D, G
        IntEnable(C674X_MASK_INT7);
, O/ I# {, ^' z! Y
2 T! n: m1 l! U; b% O7 ]6 |! D        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
$ Y$ P( S  z( [( G2 r        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
8 k5 {+ A3 W4 \/ M7 s        IntEnable(C674X_MASK_INT8);
! g7 j* |7 m- S" j& [$ ]但是现在收不到中断,请问问题出在那里?谢谢
) Y4 X' j  N$ R0 c" j  [
分享到:  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
* {9 k0 C7 @3 c  h/ h从你贴出来的代码看 应该是没有问题的

+ z5 p' f! J$ y9 k9 C0 J, x还有其他要配置的地方吗?比如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% v5 Z7 T; N/ {
从你贴出来的代码看 应该是没有问题的

7 |; S) r* B. {2 K9 I! ?追加一个问题:我先在的中断分配如下:# g. P1 ]+ O* ]5 N2 |
4:VPIF
- }+ R* g+ l1 w; Q5 Z5:LCD
  w) X4 L9 x* @$ ^- H6:GPIO Bank0
* ~) z4 ]& l) C5 R* i7:GPIO Bank69 L  N$ I1 x( X
8:GPIO Bank8
  p7 v- u' M" O6 g- _( p9:timer
, j3 Z) }4 t+ X% n发现运行后,要么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
( k$ k8 H" D5 I# r追加一个问题:我先在的中断分配如下:- c& l; P% k& K& N6 o! |7 ~
4:VPIF; L8 p6 ]# ^+ y5 T& d3 _
5:LCD
/ Z( O/ R4 p6 {. ~
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44
2 n; @* E  }. \不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
' b& ]/ r: Z0 i" _6 P, T' L
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 12:27 , Processed in 0.044719 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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