|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:1 z/ f6 y# h; D' T' S6 n$ w
//kEY GPIO set# U9 U) U! [/ h1 o6 R: N4 N) S
GPIOBank0Pin1PinMuxSetup();
+ c0 }$ k) ?2 l" @. v K GPIOBank0Pin2PinMuxSetup();
q" a* k& }9 i H H6 O! _ GPIOBank6Pin8PinMuxSetup();
7 H, Z. ^2 i' C+ u) Y. | a GPIOBank6Pin9PinMuxSetup();0 m- J9 }3 |7 k
GPIOBank6Pin10PinMuxSetup();% w7 `6 ~+ N7 q
GPIOBank6Pin11PinMuxSetup();
9 H' T% Q! g% H4 G) D GPIOBank8Pin12PinMuxSetup();
$ M6 N4 O+ a) T9 ~$ O GPIOBank8Pin14PinMuxSetup();' a' g' H* ~4 \) E
GPIOBank8Pin15PinMuxSetup();: y* u% O/ t- Z0 l9 |! ]6 w
$ L, Y( L' D5 h7 \( d
GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);# ]5 \& m* \) d: q! } @ w G R
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
- K" z+ _0 s( I7 E* f) ? GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);7 K% B9 r& ~, R
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
' E/ A8 D i( W: `% R GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);& S J7 B F( Q. y
GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
; q/ [ G4 _# q' B9 Q GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);% m' f$ w+ U) I. ]6 f. B& e0 g# m
GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);! D8 b- u! h, o: Z1 i
GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
+ p5 { a" j7 Y% p3 T2 ^/ J( p! r% `* A0 ]( e
( J) A7 H: o0 J M; }: { m `
// 底板按键中断; I4 x2 S, P9 m
GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
: ^3 Y+ z& V# t3 O9 S F GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
" H9 d2 R/ d5 M: m# @ GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
( g( D, j1 K: |! i8 P GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok# L; B" u, Z m2 h
GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
4 g1 U2 B% [) X. @" R GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right& h, p2 M4 j! Y8 }4 l
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up0 T# w: Q& H( u d7 c( q
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
% a4 i5 U* c7 `% G; Z GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
; J* f" i3 E7 f2 ^* M) Q
0 \+ M; `) b4 r // 使能 GPIO BANK 中断
3 n) K/ ?0 |, Q6 B5 s GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO0
1 x. G' Z# W" V3 ? GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6
( b3 W! U4 V; t, P9 _ GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8 Z1 y# J- k' [1 R$ H1 b
! v6 w- J% Z" x' s9 ~ // 注册中断服务函数
& q7 {7 Y9 f+ x IntRegister(C674X_MASK_INT6, USER0KEYIsr);6 F" d3 i9 _% L
IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
: n' S7 }" T5 n2 G; E0 v+ F IntEnable(C674X_MASK_INT6);. Q: K. _; ?& T! S X9 O
& W8 [2 G; N3 A
IntRegister(C674X_MASK_INT7, USER1KEYIsr);
) ]: I5 c3 B; S' M J$ O IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
7 L% Y* w: ^7 M# S IntEnable(C674X_MASK_INT7);
6 J* a2 G+ ^4 H: G$ I' @7 k0 d! o
! V+ k1 L: H; n IntRegister(C674X_MASK_INT8, USER2KEYIsr);
, q! j+ G \2 ^! Y' H) E+ C& P1 H IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
% w: ]# X0 T6 B. H1 f; b0 j& n IntEnable(C674X_MASK_INT8);
- h9 F& }* v' K, }但是现在收不到中断,请问问题出在那里?谢谢
1 D0 R% D- c( _/ c, u5 f( s; L |
|