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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7230|回复: 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?我现在实现代码如下:
' G/ S( P) Z2 q1 R, `        //kEY GPIO set
- S& Z9 J1 p* p. G0 n        GPIOBank0Pin1PinMuxSetup();* g- D! i/ b" H
        GPIOBank0Pin2PinMuxSetup();) e1 R& [; G1 `
        GPIOBank6Pin8PinMuxSetup();
0 P) P& J6 W. O, _" z        GPIOBank6Pin9PinMuxSetup();
: c  S% x* a7 D/ i        GPIOBank6Pin10PinMuxSetup();
( T; I* B, u4 r6 C& q+ t$ Z        GPIOBank6Pin11PinMuxSetup();
( Q4 ]' o  P, M; e# y& I        GPIOBank8Pin12PinMuxSetup();/ s3 y% ~* c# U
        GPIOBank8Pin14PinMuxSetup();# K) Q9 i  |! z
        GPIOBank8Pin15PinMuxSetup();
- a& j: D: M( e9 x0 u
1 r4 u8 V' j# `' l& v3 ^; y    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
5 B8 ?+ I9 m" x# f8 R& F9 y    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
& p0 B- Q& F" v  n' R    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);% n" F( H* S$ d7 F8 R; |# t7 e
    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
5 f" ]' r3 r  Z8 e. H2 {    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
/ l; ]  E/ {% C2 U9 m* ~    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);3 t+ L' q) P0 R
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);; g# v1 p( W: z- L
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
+ \- x! b& W6 ~- ]2 e/ n    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
( [4 m8 f7 ?! s6 H- U! j4 O$ E/ m: U
+ l# X8 G, t! }6 J+ E9 `" n# u/ ^
9 f( K0 [, j2 |5 a" C. F' k        // 底板按键中断
" X$ |2 W9 l. K  Z" e    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none8 w4 f7 U9 f7 n! R
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
; F( U8 Q* N& F    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left, A/ P. ^2 K5 I. J- B. P
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok$ {, z) N% a  v$ P
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down" o' K4 x: q2 ]! U
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right& V* S$ Q  `. p( W) V
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
) z3 G; s( G" U" `% \    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
8 M& c" `( Q5 u$ k$ F    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm0 m" z  y2 s% O7 M

/ ~& T6 _0 \& E! U+ x    // 使能 GPIO BANK 中断
5 p- x, e5 T/ A& i& V! \    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
: ?- [( E+ x. ?7 N    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6- `) g5 S! a  \! f4 [( U
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
/ x$ c  b2 _1 L  L5 w
/ P& I2 ~1 F6 y7 T3 w3 `        // 注册中断服务函数
6 T8 x" w8 B6 l; h8 n/ V0 G        IntRegister(C674X_MASK_INT6, USER0KEYIsr);
' r( \" h* m& v$ M' j9 B; p% T        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
8 D- {8 s& V( h0 P) j2 G, v        IntEnable(C674X_MASK_INT6);# [2 X% w; U, l# w" c+ V: N

9 Z- c2 {4 b( y5 j  y        IntRegister(C674X_MASK_INT7, USER1KEYIsr);! R0 ~, y- ]( |; j; I3 I/ o
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);/ k- k- O6 u% Y$ K
        IntEnable(C674X_MASK_INT7);
2 Y0 R6 [% ?& S2 t% u) q; H8 F
& f! Z  j/ k! X* W        IntRegister(C674X_MASK_INT8, USER2KEYIsr);9 _" m9 Q$ O7 D, k0 o, f) t8 R2 e. W
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);4 f( ^' s; I( h* M- _
        IntEnable(C674X_MASK_INT8);5 {! l* i- |  l, q1 }
但是现在收不到中断,请问问题出在那里?谢谢
, Q8 r3 h. K1 p$ a% X
分享到:  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
5 X( n/ U) K+ Y9 R从你贴出来的代码看 应该是没有问题的
- z3 E) I2 F- Z5 i0 D0 Q! q
还有其他要配置的地方吗?比如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
  D8 C" E+ Q. Y; u从你贴出来的代码看 应该是没有问题的
! A3 l# s8 |$ N# K& \
追加一个问题:我先在的中断分配如下:
1 ]2 v- P- s7 r7 _$ I, C4:VPIF
1 R/ p. X( @- {6 f" I5:LCD
0 o0 F+ j8 J7 {% r6:GPIO Bank0
  f+ T' d6 D& ^7:GPIO Bank6' w+ \) F7 u- Q) @
8:GPIO Bank8
) B7 ?: H1 K2 Z( t+ S8 u" e9:timer- E8 L" {; n3 I
发现运行后,要么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
/ p4 X1 i9 f$ c) {/ ~' S追加一个问题:我先在的中断分配如下:' C$ x! i6 \! [
4:VPIF' v& ?! f+ K# B' R' v* |( s  z
5:LCD
$ g: A% m% m4 _- R5 A- H' \2 p
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44( k: C' ~+ z- K5 A, G
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...
7 |7 n+ s7 S6 ]2 N5 R: s
恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 13:42 , Processed in 0.039976 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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