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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7870|回复: 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?我现在实现代码如下:
+ d  P. Z) F" d        //kEY GPIO set
% J2 z' {- x$ L2 `9 y7 |/ N        GPIOBank0Pin1PinMuxSetup();
1 C5 x4 i5 u" D2 e' N+ P        GPIOBank0Pin2PinMuxSetup();- q8 m5 \8 k+ v; n* G/ ^. I) ?
        GPIOBank6Pin8PinMuxSetup();  |# T+ X3 [) c( N% Q, s
        GPIOBank6Pin9PinMuxSetup();
4 P. _0 T3 ]4 o' W        GPIOBank6Pin10PinMuxSetup();
5 g; q' a5 r/ }' G9 z' ]        GPIOBank6Pin11PinMuxSetup();! d0 p2 n3 H) V( Q+ K, x) J
        GPIOBank8Pin12PinMuxSetup();! y# q+ o, o2 ]8 l
        GPIOBank8Pin14PinMuxSetup();3 {. p# e% d3 ]" d* i: P' r
        GPIOBank8Pin15PinMuxSetup();
4 `6 z* E; V* i/ ?4 c, i1 a7 q3 A
0 ]" l7 ]0 k! Q/ O! ~/ M    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);5 i# P: Z9 b0 F" e  G5 h/ L) n
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
* ^7 O* H: V2 s    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);. `2 i. h' G; M
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);9 A9 K+ H7 y, T
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
. G  W4 I( R- s    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
: q. Q) i8 z+ v5 V/ h5 {  A7 I& b    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
( v* K; F5 ?2 |    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);5 e; M$ B& _, N. _: D
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
4 N) Z+ L0 w/ `7 n/ h
0 {" N0 B- j7 Z3 z4 ]) z3 f
& u2 A1 A" _( i  ?" }# `        // 底板按键中断& B! r3 Y* U. T7 o& s
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none. W! I8 r/ }6 T  |0 _
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
# h7 ~& f& }8 J# k    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left2 |# b8 v$ \- B+ z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 |: e8 l1 D: A* c  k6 f4 H% s
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down/ ]* J! |, v" H+ j3 b8 D9 x+ e
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
  k5 a: J7 ]  _* E) T    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
/ j( v1 y7 O( {+ k( ?/ T5 P0 [    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel" F) N$ h2 V9 p, f& U" j6 w2 ~
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
( O! b6 J5 ^' P8 k* w" e# m# j; b. o; |' U& s; J& V. k% d9 B
    // 使能 GPIO BANK 中断% \# K/ t: K- F% V
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
4 ^  `7 R6 ^4 S* e( B% I    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
& N1 W; E+ E5 N2 x4 A9 J/ [    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO81 {+ Z9 A$ d) l5 P) |0 V0 h7 u

0 j! p" u  c, p4 R# @- c! z        // 注册中断服务函数
$ A& a4 x- ?, q% {3 {) k        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
# r' v- M% @6 {        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
7 |) W, I& y  A$ W' c# [        IntEnable(C674X_MASK_INT6);: W2 c+ Z$ k$ Q2 E! J: P3 U

- X+ @7 j) G0 a        IntRegister(C674X_MASK_INT7, USER1KEYIsr);8 q% u. i2 N# o3 W0 v
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);# g* e# A4 {& ]) w; M7 `
        IntEnable(C674X_MASK_INT7);
" `" y/ u/ [! O- @0 n2 S, s
$ ]  o* W/ B5 G) R        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
+ I# j  D" m+ y7 T        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
: ]! b4 d  w  N7 ?3 A        IntEnable(C674X_MASK_INT8);- L) u5 J+ u: o
但是现在收不到中断,请问问题出在那里?谢谢& Z/ k5 i3 g+ j/ o, l- 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+ T" }# M/ z# e  C- ~/ B' j
从你贴出来的代码看 应该是没有问题的
& {% N/ u. b0 N5 c% e6 g
还有其他要配置的地方吗?比如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:426 r4 R& X5 i2 [0 }1 R5 J$ F
从你贴出来的代码看 应该是没有问题的
7 \4 ^- X# G$ f8 i: s) e  s
追加一个问题:我先在的中断分配如下:
7 D9 y; c. W0 y2 P3 ^+ n4:VPIF4 S% Z8 ?" W# T4 S  q
5:LCD" [9 X5 U! a+ T! E
6:GPIO Bank0
2 W* s! m; X; E0 K+ q7:GPIO Bank6& q, t9 a& G' u! Z
8:GPIO Bank82 m: l7 u% L6 V$ m2 ~
9:timer
0 V; J7 g2 Y$ l) z6 s2 X/ f发现运行后,要么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
6 E/ b3 P- A/ N# N: l追加一个问题:我先在的中断分配如下:) U  A/ e# D* [
4:VPIF! s% }/ J, ^0 E5 {
5:LCD
7 H, f# y6 [0 P+ x+ A) ~
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44  l. \4 o) N. e9 b3 I  X* U
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

& P$ s6 A/ I6 \: k% I4 c# }恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 23:15 , Processed in 0.042217 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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