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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7775|回复: 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?我现在实现代码如下:
$ [4 \/ Y' B" U, ?! @        //kEY GPIO set
3 a! A5 j! l6 g; I$ g        GPIOBank0Pin1PinMuxSetup();2 i0 M5 }. T+ S
        GPIOBank0Pin2PinMuxSetup();" t7 ]3 e. C3 q+ y  a- u- d/ O; ~- Y
        GPIOBank6Pin8PinMuxSetup();
  d' Z4 ^- G: o: e$ C, H  l% [* j        GPIOBank6Pin9PinMuxSetup();
& h2 n( J) M/ H" o% m- t        GPIOBank6Pin10PinMuxSetup();2 a8 S$ u& z  M) j  h. _
        GPIOBank6Pin11PinMuxSetup();
/ l8 R, r2 U, [& B, T. @) C# i% L        GPIOBank8Pin12PinMuxSetup();
, u# o6 C$ F) F        GPIOBank8Pin14PinMuxSetup();4 L5 f- e# O  ?$ \
        GPIOBank8Pin15PinMuxSetup();, t. t; H' x  E& Z/ a8 B7 o% G

, M" g3 h& R; ?0 {  U; E    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
6 k9 w  J4 L* H9 u    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);9 n' s" Q) K$ ?
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);, X- N4 a/ V9 s9 G  z; b0 R7 t4 U
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
/ S0 v* b* E3 q    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
6 D4 `9 g/ k3 Y/ b- T% Y1 n! V    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);$ z" z2 B. g$ C
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);6 N4 p3 k$ E* v+ w+ N$ |
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
# M4 D% M. j& k4 w    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);; X. Q" f$ O" x9 P& S

# X7 X) l( y, w9 X' W/ }& v- W5 X" j* m% U; E
        // 底板按键中断% t7 _$ t+ [9 B6 e$ z
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
' M" V  H! h% x) K    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
" n+ Y; l# `" m4 ?# E/ f% j# P    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left0 ^3 K8 q, z9 j. K
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 X% A/ {/ y; t0 g7 _0 W
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down8 m7 {* W, J- B7 G  f2 o, N, C
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right0 j5 f+ E* J4 h) E- G2 x! N( x
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
% _: s1 Y3 A' p1 G4 U5 p7 {    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel- a/ F4 t) s1 P: W$ J8 t/ B
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm' P0 e. [9 ^' t3 @6 N' @
9 w- W3 e2 S  p
    // 使能 GPIO BANK 中断5 m: ?) z" I) p- G9 s5 O$ g
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO01 m3 n; G; J0 D1 X- A+ U$ E6 M
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
0 }* }; y( Y! u: z- b! M$ f    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
5 q' p) e* H( a, O& N+ Q+ S2 n' ?
' y- e; K& `0 G- d        // 注册中断服务函数
( @( v. J% K6 U. w# u        IntRegister(C674X_MASK_INT6, USER0KEYIsr);, i! M( b5 S8 m) \! D0 V
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
  d. c# h' G* d4 U% K7 a        IntEnable(C674X_MASK_INT6);0 t0 W, \# W4 Z1 G

4 e3 L/ a( o! |, r; r6 P        IntRegister(C674X_MASK_INT7, USER1KEYIsr);9 k3 y% ~8 V, g0 I4 W
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);) V% g& X, z/ Y6 |7 s" I, O, J
        IntEnable(C674X_MASK_INT7);. q2 `; j+ H1 h& A6 _
" r, P( i% y' u& m8 t
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);/ U! d1 O: C- U9 r, X( m
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);  X3 R& l; N/ Y! n0 y- C
        IntEnable(C674X_MASK_INT8);
3 F& Q( M% x+ a3 G% r但是现在收不到中断,请问问题出在那里?谢谢
, o! C2 s+ q* g
分享到:  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: E+ ~% R, O5 ?! q' _* M
从你贴出来的代码看 应该是没有问题的

5 C, J& A, G0 @, u4 \5 ^, {还有其他要配置的地方吗?比如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& v' f" z- }* y& L" U. s6 l
从你贴出来的代码看 应该是没有问题的
. H' d1 ]/ ^. U8 n
追加一个问题:我先在的中断分配如下:
% h# I+ k4 {5 q6 j( X/ |4:VPIF$ }" [7 M) ~$ \/ J8 t' g
5:LCD
! f8 Z- l' ^$ L6:GPIO Bank0+ \( R" Y8 e$ F  |  [* U7 [
7:GPIO Bank6( f4 x& K9 u* j# k3 F: q
8:GPIO Bank8' X6 ?* E' j0 ~. o; U
9:timer
/ D% P) I% C. X% F& ]: Q, q发现运行后,要么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' U, i0 T6 y$ x$ m/ d- n( I0 {
追加一个问题:我先在的中断分配如下:
7 n- ?) @8 M% G9 c0 Q) y' b4:VPIF
4 I% I$ P1 n0 z; @& }5:LCD

- b% }! x7 i: w3 \- k! {不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 06:05 , Processed in 0.038000 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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