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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7779|回复: 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?我现在实现代码如下:! H  D7 K  q% a3 H0 e
        //kEY GPIO set
, X& Y' U; t; l& U) c+ R0 k- m        GPIOBank0Pin1PinMuxSetup();: }* o& o# G0 m
        GPIOBank0Pin2PinMuxSetup();
/ x5 `2 s& \. P: N" R        GPIOBank6Pin8PinMuxSetup();
2 p. s7 M# R- j7 ~  ^0 v( D$ r* W: v0 S        GPIOBank6Pin9PinMuxSetup();
% q* G; K: F% {  G        GPIOBank6Pin10PinMuxSetup();8 K3 B8 n; @( x; o/ p
        GPIOBank6Pin11PinMuxSetup();
  \' r  r2 A* Q# T! {% D9 A        GPIOBank8Pin12PinMuxSetup();
; U/ F8 S" V* e6 V4 ^3 |* h' }        GPIOBank8Pin14PinMuxSetup();6 O% O, o) U- N$ L% u# `7 J
        GPIOBank8Pin15PinMuxSetup();: D$ Y& F$ y. r( w
, k+ N8 e+ H& C
    GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);
& a0 }# b! r$ ?! m) E    GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
  V7 L+ _( j/ Z* D0 P$ |    GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);
6 k& v+ a! Y8 V; V2 M    GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
* [+ w0 F9 V( h' B    GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
% z; x4 ]) Y, i    GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
( O; W0 \. P1 E    GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
9 _2 Q. |6 B  g    GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
; r3 ^9 v- e3 |9 |/ i% v+ Y  B    GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
0 R/ p4 i9 R2 d0 j' g# p% }0 X
. \8 E6 f& C6 Q4 z. Z8 O0 [- P7 Q, b
        // 底板按键中断
& O# O- Z  ?$ u; e, A: d* O    GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
3 A; {" r$ C+ T, D    GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
( G* i* H5 P: v; A$ K/ {1 i    GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
' w7 n1 X, L$ I7 c# R8 N- e    GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 }4 v3 t$ s% {, O
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down' I1 j; `8 v4 r7 m; I& F/ H
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
5 I1 O% M( M; e. p+ [; ^; `. p) l    GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up# \) i/ q# F5 Z) {
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel# }4 i* t& C/ O9 c
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
, c- U+ J1 }! }- t9 r" m8 G  L) L: h2 P) @. w; Z3 S3 \8 ^
    // 使能 GPIO BANK 中断  s* a* H6 o. I- D& n
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  //GPIO0, ?8 B- f: B% x5 ?# h
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);                  //GPIO6; U) D' U8 q3 |+ x2 @; Y6 z
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);                  //GPIO8
/ N" _  V5 N/ S$ \" T$ Q0 }% P0 ^1 g$ ?6 e6 H3 p% _
        // 注册中断服务函数" }, [6 K0 |* W; @8 j- w- X3 B
        IntRegister(C674X_MASK_INT6, USER0KEYIsr);$ k% F/ e+ u* ~/ `0 Z
        IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);, p/ j) t+ ~5 }  n. c) r9 W, \
        IntEnable(C674X_MASK_INT6);9 F/ d* K7 |4 @. z# c( b& f$ K

; K2 X( b5 g- S: q" t0 ~8 o4 d0 p        IntRegister(C674X_MASK_INT7, USER1KEYIsr);
/ t' p) T! F0 z5 q' ^        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
) r! U1 ~3 X; x5 V        IntEnable(C674X_MASK_INT7);; `: q" n  j& H; W* c' n8 E+ S- p
  w: H. m) x1 e+ ~$ L
        IntRegister(C674X_MASK_INT8, USER2KEYIsr);
" v0 {# [3 t% u, J; o& a" G$ E        IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);: n- w: S$ [4 l9 q
        IntEnable(C674X_MASK_INT8);
% P% [- }* D3 K! {) \但是现在收不到中断,请问问题出在那里?谢谢  P. @5 y5 X, x) o) A
分享到:  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
* {; q: ?$ w( h7 c7 Y8 p从你贴出来的代码看 应该是没有问题的
3 c6 {' \$ i7 |% k/ u. \
还有其他要配置的地方吗?比如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
# R, P2 O( k, j& t6 O9 g从你贴出来的代码看 应该是没有问题的
( _6 W2 W& Z& O, @
追加一个问题:我先在的中断分配如下:# g! K4 H+ X& ?  V1 x
4:VPIF
$ m" A% u5 J- I* {( `& [5:LCD' U, P) q! l- L& j2 k5 S# [0 q" ]
6:GPIO Bank0
* W0 O2 F0 \1 w0 E" d- s  N7:GPIO Bank6
& Q7 a- E+ S" w. d* t# X% N3 C8:GPIO Bank8
7 ]; O" l, K$ t" q9:timer
5 i/ ?. s6 Z+ D0 m1 b9 O发现运行后,要么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
; Z; p1 c+ F. y* J8 N/ a追加一个问题:我先在的中断分配如下:
  g2 o; j6 y- m7 c: c0 a9 S% {' h0 {4:VPIF
  r& l6 R* G0 h* G5:LCD
2 }  N# Z- d; d5 i' f( ?& I6 P" t
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是不是执行时间太长了
回复 支持 反对

使用道具 举报

10

主题

33

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
7#
 楼主| 发表于 2015-7-3 12:31:12 | 只看该作者
希望缄默 发表于 2015-7-2 10:44! N* c, V, ]" V( e0 B( \! L7 F8 `
不使用操作系统可屏蔽中断不能嵌套 当前中断服务函数执行时其它中断是不能响应的 检查下你的 ISR 函数是 ...

4 F4 m' n  M" z恩,找到问题了,调试的时候把GPIO和VPIF的中断号设置成一样的了,而且没有设置combine,修改了以后,就好了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 10:00 , Processed in 0.045913 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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