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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7652|回复: 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?我现在实现代码如下:: q1 b3 n& O0 J! S
        //kEY GPIO set
8 Z+ L& i  Z- V  [+ W        GPIOBank0Pin1PinMuxSetup();
9 |( Q8 d& {) V4 {* C        GPIOBank0Pin2PinMuxSetup();
: x; x. a: V) z        GPIOBank6Pin8PinMuxSetup();1 y' ]: K% Z' ?* r4 S. q  g3 d
        GPIOBank6Pin9PinMuxSetup();
. R" E2 S: r. B$ n" {        GPIOBank6Pin10PinMuxSetup();
8 T5 L3 S5 G5 M: g        GPIOBank6Pin11PinMuxSetup();
& m- G& {1 A% `$ F        GPIOBank8Pin12PinMuxSetup();
2 y5 P6 x( `' v# W" x% I& l        GPIOBank8Pin14PinMuxSetup();, x, K2 i% y4 v3 b# C
        GPIOBank8Pin15PinMuxSetup();
' r$ X$ c8 d9 t1 G0 x
: Y6 Q8 g! N6 s' q) [( J: U9 ]; U    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);! ^3 t, S. D, K& ^7 q0 a0 z9 e
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);4 S3 e& K7 Q! W9 K" N, P; Z& }% L
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);, P3 y2 ]/ J) w. D
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
# P1 r) k! A1 o  X) h8 M. w    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);2 ?8 t# w. t9 ~3 Z) O. I
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);! F, [/ @3 X4 `9 Z8 S4 ?7 F
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
1 w* C) P4 [8 L    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
; d& ?; o  y( z    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);7 ?5 J; S3 z- R9 `

" d: z& p: q, d. ]
# [# }4 C/ h  a6 m5 ^        // 底板按键中断5 d8 M" `' Y( C! I  c5 r
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
6 y& {9 o1 C: C" k1 Y/ B( V    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none7 p9 [. f0 l" E) u
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
# e$ c; {8 E6 {( f1 L! d    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok* ?+ a. k' U8 N) q
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down+ e' r( k: u# C3 G9 z. D
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right3 g$ }( y, K  J; `8 r- B- C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
1 K( }  F* \/ C6 w' Y7 f    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel0 n8 ~5 o' E5 s3 Q, d# k) R
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
" V. y* q2 t$ Z, Y/ _1 y& r' t# s7 o  g( }4 ]+ g
    // 使能 GPIO BANK 中断; M5 B) r6 y" ~3 r% i0 T* ?/ I
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0/ }, {, ]2 G6 @. h# w; x
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6$ }& K. R( D+ b4 r, G& l6 z' W
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO85 P, D) F" B3 c) n0 V6 A

* S2 ^; ?( {+ |1 e3 q+ [        // 注册中断服务函数+ r6 d# V! b: H
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);+ k: L1 @+ R: E7 {1 A, w7 ]
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);) g9 S9 n3 D/ a0 Q" W
        IntEnable(C674X_MASK_INT6);
0 ]) G+ N2 d- a! i7 H" q+ T8 C6 d3 x$ \
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);; Y' c1 Q$ \! o0 r
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
& O* [% x  {9 s        IntEnable(C674X_MASK_INT7);
) {- ~- C9 M6 X: @2 y5 c% c- q* v
! k: W* \( L" d5 E        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
9 E% p" y6 v7 n7 O* n        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);) w, j9 V4 A6 F2 }4 N
        IntEnable(C674X_MASK_INT8);4 f5 P: }8 e$ i8 \' O4 }8 B  g  e
但是现在收不到中断,请问问题出在那里?谢谢; I5 q$ h+ ^2 M! w/ U  }/ v; Q
分享到:  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/ N: N4 h& @4 T4 I- C  L
从你贴出来的代码看 应该是没有问题的
* H- @: a- E* w) c/ [
还有其他要配置的地方吗?比如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
& O/ y, j6 P* o1 m# ?从你贴出来的代码看 应该是没有问题的

" S; k# Q% i% y2 t追加一个问题:我先在的中断分配如下:/ \' Q2 N: K& |! s# m6 H
4:VPIF
! Q/ v7 k4 W! j$ Z* k) r0 \9 H* x# \) h5:LCD
. I. J3 U' Y/ L  W6 C: v+ v6:GPIO Bank0
! g0 ^* ^3 D* f) c- J8 Q2 i7:GPIO Bank6
3 h- Y$ R0 x; K( H7 k6 ^8:GPIO Bank8
! `$ P. `2 G3 ^0 `9:timer5 K8 A+ n8 Y0 r, K* 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
( w8 }1 F" d6 _2 Y7 T追加一个问题:我先在的中断分配如下:
# F- L2 z; G7 U& Q. w3 d4:VPIF' }2 \. o5 j+ D& z
5:LCD

$ V) N  j$ ^6 A不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:442 x8 `+ n' }) W' d4 J' C4 N5 U3 v) J9 w
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

* N, n* X8 o/ Q7 k% ~恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 06:38 , Processed in 0.041326 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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