|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下: J' E5 Y( B3 ]7 m* a
//kEY GPIO set
( |3 d4 G: m f, s! x GPIOBank0Pin1PinMuxSetup();
8 w7 F9 z2 _6 f: r. Z GPIOBank0Pin2PinMuxSetup();" X1 d: l1 v) L( X( t$ i: M# ^2 g5 q
GPIOBank6Pin8PinMuxSetup();
3 O/ K- Q% S4 B GPIOBank6Pin9PinMuxSetup();
. B3 I, V( B; o8 ^- z$ B- L GPIOBank6Pin10PinMuxSetup();
- z) P' u) M5 A* ?0 B GPIOBank6Pin11PinMuxSetup();
$ |9 m' s: Y- P7 {2 o6 x GPIOBank8Pin12PinMuxSetup();
y0 z. i1 o/ @6 x& F GPIOBank8Pin14PinMuxSetup();
3 g; I. v" D" P GPIOBank8Pin15PinMuxSetup();
' c( ]! C. b; @, g- z9 l/ g; P$ W7 X
GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);1 M8 C% X3 @8 o/ \. V
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);* I- X$ H" `" W: I+ Z% @/ p
GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);6 V1 V6 E# a/ n! T1 v- T' M
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
; x! h7 V7 T1 R6 K/ M# Z9 Z GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
9 d5 }+ g( f r' V- ~ GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);* b# _- F$ u4 m$ }" W0 }" |* V+ C
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);! m: n8 Q- @3 l7 }& L, i% _. t( S
GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
0 D$ v$ w( L0 L/ N' m! e! Z+ ? GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
. k) n: i2 B# e+ l2 Q& g( V! F+ d5 U9 J4 H9 l
# e' @. ~7 u$ x4 j // 底板按键中断
) h% N- _! S+ w4 Q4 B GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
) c+ a/ Q0 H7 ~, ] GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
5 B2 V/ O1 G& j+ Q/ Q GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
' v& k5 J( s6 ^* u, N, x& D0 |: i GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok4 `: N( _$ b0 m6 a5 i+ ]1 }# ^2 F
GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
' |, r7 j$ r& u) t1 @* \! ^ GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right4 `+ F( e4 R4 F: H$ r' h
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
7 g2 Y; d( k( c GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel+ i, k4 b. f& N! P
GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm! o; u& x8 {% S$ C
; H3 i8 P/ ~% H
// 使能 GPIO BANK 中断: ?3 |7 R& u: r4 R
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO0, F# }2 V; [1 t) l
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6
8 p% n% O) ?- e' i/ o' p# S GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8) e9 [: g; g2 ]4 w! Q
1 N; N1 T" ]$ W2 O v, M // 注册中断服务函数8 T7 b3 D' E% o+ V% e! ~
IntRegister(C674X_MASK_INT6, USER0KEYIsr);& a) h4 x+ u# R0 y5 L
IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
0 f# b) S6 A; w1 D IntEnable(C674X_MASK_INT6);) a: K# `( O' Y/ J% [, `/ @8 l! e# }$ H
; g! Y' Y2 {; o9 a. @3 K- D
IntRegister(C674X_MASK_INT7, USER1KEYIsr);
; ]$ B" v! J" o _" ? IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
! x0 x0 R% d' ]$ d1 s IntEnable(C674X_MASK_INT7);
) z8 k2 Z5 B; g1 J) u/ ?
8 H/ ~+ E g2 _ IntRegister(C674X_MASK_INT8, USER2KEYIsr);* B/ I- Y4 {3 U) g' ^- _
IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);! p& N0 }1 Y7 S* y. b( L
IntEnable(C674X_MASK_INT8);
2 p+ F6 L: w; t$ G+ E! V/ ~' @* t; V但是现在收不到中断,请问问题出在那里?谢谢
+ O2 g/ F. x$ \ |
|