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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7376|回复: 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?我现在实现代码如下:
+ W0 x4 t6 }# t9 v$ u: {& H        //kEY GPIO set
/ Q1 Z% i* d( n" j  T1 c: A        GPIOBank0Pin1PinMuxSetup();9 m' u6 x: ?+ `7 M6 C
        GPIOBank0Pin2PinMuxSetup();- L% G7 ^# B0 V0 z
        GPIOBank6Pin8PinMuxSetup();
7 H4 Q1 i. r! {        GPIOBank6Pin9PinMuxSetup();9 m& \  K# P; W5 F
        GPIOBank6Pin10PinMuxSetup();  s* Q7 o) o" K% K; z, `, h
        GPIOBank6Pin11PinMuxSetup();
3 ^4 u7 u$ c' T/ p        GPIOBank8Pin12PinMuxSetup();* |6 G) m* j1 m
        GPIOBank8Pin14PinMuxSetup();! S% M* x1 {+ i5 S. \) C- B
        GPIOBank8Pin15PinMuxSetup();' N1 `2 S( ]3 Z; J( [( N
* k; p  P% P0 I7 @3 V6 D; ?
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);+ C) H; P1 b$ x! b, ^. u
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);: ~! ?$ }# e' K9 h; ^- f
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
1 l7 D) N$ C+ h5 ^! d) H    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);! [( S, U, F' L. r; f) U1 w
    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
0 ~9 ?5 z% n+ _  v! c    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
1 V3 e! [$ R3 E$ t7 b' s2 \    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);1 g4 g7 ]+ E4 x
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);8 O8 ?2 p6 w" p/ |2 o' a' I
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
- z3 n# M* z: B& u  E  J+ l. M1 g; R& I
6 X- b% j9 M) Q" p" c' c& J6 c2 m/ x
        // 底板按键中断- Q6 I4 E, d$ v9 M( n+ {! v
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none# r& \' H5 W# ]' w. _3 }9 h
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
7 L+ d! E3 O7 S4 |* v$ a8 j( m: M    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
1 {- G; w5 e" ]5 o# N    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
8 r: q+ y. M1 O7 P- ~7 K: J2 t! ?! T, p    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down+ c& a, P( p6 J  W9 g
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right% k( u4 U: @4 y/ E
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
3 _* i) B5 `! K8 N3 G9 E    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel; s4 a6 L! F2 H0 n. K( X8 _! l) J
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm  [. A) z  l) W

( B5 ~6 A% s! X9 \( |$ M    // 使能 GPIO BANK 中断
/ U# S% R5 u) C" D: y* z    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO04 Z* F; Z1 {* }
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
4 _& E! V1 W: B! m8 p  |) g9 u+ i    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO86 ^2 Z; l# b. P1 ]2 X; _& R  K
7 H1 K1 `1 T# k! Y. T/ ?1 U
        // 注册中断服务函数  d, n2 ?  O- O0 O- @
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);1 Y& s% x: m5 a9 T, @9 l
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
+ Z# ?) G; w; T& |1 d4 ^        IntEnable(C674X_MASK_INT6);( I7 o% c5 l. d) d
9 t9 y8 p1 ?. T) J% l# Z( r0 t
        IntRegister(C674X_MASK_INT7, USER1KEYIsr);( P8 o! V4 B0 Z. q& J; H. R7 \, s  h
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);& P3 {, Q& i; ~$ X
        IntEnable(C674X_MASK_INT7);
5 x0 m2 H8 g; V7 q6 z. a8 \. {: m4 ]: t9 N+ Z8 S, O
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);1 R2 z3 M; U! P0 {( M3 ]
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);7 r8 x! E1 {( v4 b/ J
        IntEnable(C674X_MASK_INT8);
9 x* e/ U1 ^% ]2 h7 j1 L但是现在收不到中断,请问问题出在那里?谢谢2 m3 A3 C/ O. E+ a+ B
分享到:  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
* D: q2 y; H& B5 L5 m- T3 t从你贴出来的代码看 应该是没有问题的
  O2 c/ O9 W& u, X8 C0 C# M& i/ }" z
还有其他要配置的地方吗?比如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
: W0 T# F3 }0 M' F从你贴出来的代码看 应该是没有问题的
" J3 V( E3 |- M5 K8 y3 R
追加一个问题:我先在的中断分配如下:
$ i: C. E6 L! B$ z: Q% K& O4:VPIF, Z3 j; m1 V/ p2 L% K
5:LCD/ c1 n( q5 y, M* `' C
6:GPIO Bank0
, I$ _' i. S# Q* w& |1 c  o+ r7:GPIO Bank6
8 F2 U9 T1 [+ J6 m9 J. ~8:GPIO Bank8
; G1 d6 E7 K8 o6 m0 u9 K8 U9:timer
* P" b+ _+ z& i/ [7 M. ~' {. O4 \; 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/ v1 E. Y. a6 R+ B  b
追加一个问题:我先在的中断分配如下:/ o6 a2 r2 L. G) m
4:VPIF
, O( j+ R! ^3 {+ o  w6 x5:LCD
0 I$ X  ^& P- u: |: ?- \
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

+ q2 G4 E$ W* C+ C: M8 i恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 19:39 , Processed in 0.040887 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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