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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6630|回复: 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?我现在实现代码如下:
; @) s, u# r3 z5 L& r% N        //kEY GPIO set
0 z# ^1 R+ a9 d9 _        GPIOBank0Pin1PinMuxSetup();
; c; }) [! n) N- L        GPIOBank0Pin2PinMuxSetup();$ w4 E& A' k" @* Z6 y3 O
        GPIOBank6Pin8PinMuxSetup();
1 k8 Q& q- L0 Q7 U2 U        GPIOBank6Pin9PinMuxSetup();+ ^# t6 X6 ], d* w
        GPIOBank6Pin10PinMuxSetup();; [& R/ `9 b0 {6 k5 z2 }9 c: l
        GPIOBank6Pin11PinMuxSetup();' i6 A. G9 P8 n; L+ T
        GPIOBank8Pin12PinMuxSetup();
- B  m. ], l( m4 l3 ~8 t$ b7 O; C        GPIOBank8Pin14PinMuxSetup();6 j( O$ G4 o/ H; T, d" E5 T/ |. M$ U
        GPIOBank8Pin15PinMuxSetup();
4 ]/ v) {. [  `
- M- O6 ?) o" |3 I2 o    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);. I. D, o' H0 v7 Y: ~- W( M
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);) q# C4 a- d- K3 G5 Q0 A+ q4 |
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);" N3 t  i: t/ P. J8 j& ]9 b: u
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
+ t6 X& ~7 h8 q! {& f    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
! s# _, Q  R! l. s# V8 v9 m) z    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);6 d. \( k& t  f. K5 B
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);* d* O4 U" @7 C, R9 l( F4 F* ^
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);  A4 t+ o4 Y; l& t) m3 e) S$ D
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
/ G8 n2 X1 ~9 l' ^( B4 l5 Z
  Z4 z* [0 p) w  o: t1 w4 Q$ p
) I" e! t+ K" V' f$ w        // 底板按键中断
9 B' J% U0 I: Y5 a  A8 |" U    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none1 ~8 W3 ~, @# m; a6 i; L* i, l
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
- z4 H9 f! w# ]    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left- G$ k( a- A# l/ b+ f2 ?5 W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 \" E9 t. r( z  c6 E
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down  ~" c& T5 ~% Q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right5 D. {# o/ U8 }! m7 a$ ]
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up) F2 M# N0 K6 G, Y4 ?8 N
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
# O) C' i7 F$ Y6 u! m* A, E( N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
. B. s: Q" t  ]$ i5 I+ v7 \1 d% z1 L; N9 K. o9 O9 H# B+ O+ a5 v3 X
    // 使能 GPIO BANK 中断8 _& E& j( q' R  G
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO09 E1 n4 c' `3 e) A; ~5 F
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
" y, {& |+ h: u    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8% p  r5 q  R8 i- B) R3 V

7 ]5 s! K# d; W  c* _! f& A        // 注册中断服务函数
. ~$ k* F0 J# Y% W" T, W; O        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
! O3 e$ t9 G4 H4 C3 k        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);, r" @8 `/ s" ~7 P
        IntEnable(C674X_MASK_INT6);6 K1 N& C4 _' J  y
& m5 @, o% G/ f7 g9 S* w
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
7 |' Z9 N4 X% s/ U) l; F9 d        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
' w* k; t6 Z! O# y$ o5 A$ I        IntEnable(C674X_MASK_INT7);
" d7 ?7 r9 s6 b
  r5 w( g5 O9 C) J% P        IntRegister(C674X_MASK_INT8, USER2KEYIsr);% K1 q6 c; V1 `# ^7 t
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);. A5 U. ^- \2 y5 i6 H7 o7 D
        IntEnable(C674X_MASK_INT8);/ [+ j- l4 K  Y4 ?
但是现在收不到中断,请问问题出在那里?谢谢& p, Q3 X2 v3 B+ W) c7 o0 ^; n0 C
分享到:  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! `' S( j+ i. x: b2 ^
从你贴出来的代码看 应该是没有问题的

% h" {& \* C5 a5 _* y还有其他要配置的地方吗?比如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
- M$ O; z) i/ `8 S' U1 e2 c从你贴出来的代码看 应该是没有问题的
) x9 B) q* c1 S, Z
追加一个问题:我先在的中断分配如下:* i% ~# {# f9 h8 W& Y! Y4 g; G& {/ u
4:VPIF8 l4 Y6 C% @! ~3 Y5 H% g. i7 l
5:LCD
. M# q& F" ?& Q6:GPIO Bank0* G- W1 Z. o1 \2 I- L% s% I
7:GPIO Bank6. U+ c! @2 j* C2 `0 @: r
8:GPIO Bank83 T" @' F/ T" N
9:timer. P- h; e+ r9 D7 U/ x
发现运行后,要么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
; l# p, Y7 a; E* u追加一个问题:我先在的中断分配如下:
8 D! w- ^5 s  t4 P4:VPIF! A9 m' m. z/ y2 f6 ~) S
5:LCD

$ g/ H: f6 M: g! e: z; W不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:443 H, t9 g: e: ^5 y; k
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

, }3 H' k9 \9 R5 i: {7 Q6 `% R& \恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 07:02 , Processed in 0.041686 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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