OMAPL138中断问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8117|回复: 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?我现在实现代码如下:
+ T+ ~2 V6 j% y+ c" u6 G& F7 T        //kEY GPIO set
/ d, n2 k2 F( O$ p        GPIOBank0Pin1PinMuxSetup();& ~, q$ Z1 a6 l$ Q: N0 w: t; W6 q" R7 o$ x
        GPIOBank0Pin2PinMuxSetup();
% T" J# j# u/ G+ B4 y        GPIOBank6Pin8PinMuxSetup();
5 \. ^- w' \; M5 `        GPIOBank6Pin9PinMuxSetup();- [( g& P6 v' ]5 y4 K( s9 |+ T
        GPIOBank6Pin10PinMuxSetup();
9 R  F7 s6 L/ o9 x1 o        GPIOBank6Pin11PinMuxSetup();
% T0 M0 [$ O* `' p5 w+ u        GPIOBank8Pin12PinMuxSetup();) A$ m) Y8 r2 e. D2 A
        GPIOBank8Pin14PinMuxSetup();7 r- |2 m9 a' c/ R
        GPIOBank8Pin15PinMuxSetup();
4 z( j  x1 ]& k1 {3 g9 F
" L  r$ R9 [* B+ V    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);8 }( N7 N/ F) d7 D
    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);0 Q/ T5 l4 R  [
    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
% P. \- i. P- ?( a/ S/ L- f    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
& {! D$ w8 U. S+ _' {* d, e    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);# g  `8 H, l0 K! g) V) R
    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);9 R# a, ]& c1 q  z' z
    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);1 U+ c# K4 V: [- n3 K
    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);: U/ p! C- i& u, |
    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
9 x, ~6 B& x+ }2 B
! x; ]. x, R0 J
$ N- q2 \( z  ]$ x: ?& M/ i# M5 {        // 底板按键中断: l% H; T0 }! w* _( }, n% N/ m* p
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
( A! J& i6 {" I4 j8 r+ p. Y- N( s7 _    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none5 R! \# z9 e. V$ `- L  P* ]+ G
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left3 [5 B1 F) h; \- w3 J$ ]: e
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
  D* {6 `3 Y+ }" v6 o( Q, q  O0 \    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
! [) |8 \7 i. d: u8 Y5 o    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right% w5 d9 P' ^' X
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
3 Z' c' |/ m6 t$ p4 ]    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel5 P- q9 j# d! ]/ q6 f2 |$ `
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm: `0 Q& B' X9 Q/ T
/ i/ f6 f) W% R' e
    // 使能 GPIO BANK 中断
6 a. t0 T& Z. I; C' z+ O6 Y    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0
8 }& d6 I; u& ~: U5 R& c+ m    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6
/ ]. F/ g3 M: |5 r9 A6 t  E    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8) n' l5 ~* @+ j. m4 m
0 D" H: U' X" C0 y0 ~
        // 注册中断服务函数
: S- ]4 d% u# O9 B$ c1 N        IntRegister(C674X_MASK_INT6, USER0KEYIsr);) H* }' v  v/ L0 U1 w
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
2 b9 u& A4 u3 ]' K/ a# Z        IntEnable(C674X_MASK_INT6);' b3 Z) O! K5 K' D

1 m6 \! U3 D4 y& L) {7 {) p9 J        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
" k, C3 |7 C4 d: ]2 g: O        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
; y: M9 m+ M2 y2 z9 X3 O" J        IntEnable(C674X_MASK_INT7);! a) O! A, V9 ^. e
" f# ^* i3 \  c+ f- o3 U% l; K6 L5 s
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);2 l; ?+ I1 X0 K
        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);% a/ w! c( f5 O* E! ]
        IntEnable(C674X_MASK_INT8);( C. k" p2 \& M, E- D& `$ e
但是现在收不到中断,请问问题出在那里?谢谢, D) o- h, a, _+ G* g! d
分享到:  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
  k0 ^3 Q" q+ c1 n8 M: ?从你贴出来的代码看 应该是没有问题的

3 C) z; A! T! {. _: l9 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. Z/ T) ?" Y8 a  o
从你贴出来的代码看 应该是没有问题的

* @% C) Y* [' n1 W& U" Q2 o追加一个问题:我先在的中断分配如下:- F5 q6 o5 Y& [/ x
4:VPIF
+ L7 p4 E4 s6 b3 S0 x5:LCD
& \# {7 `1 a. S0 z# X. {6:GPIO Bank0
" U; U- i) Y" f+ K0 F/ M7:GPIO Bank60 ^% p, F; T7 j; O- X: e
8:GPIO Bank82 P& s% u: G' T& b# I
9:timer
& d  @3 Z, }+ [9 Y% G2 q* u发现运行后,要么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
, x* N9 Z8 j/ }追加一个问题:我先在的中断分配如下:/ A9 u7 E6 V; m/ j; n, A
4:VPIF' q* g4 n5 E, q$ Q/ T6 n; C; `
5:LCD
" r, L8 k( c3 {0 q* K
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-17 06:24 , Processed in 0.044254 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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