|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:7 R' z; T# r! b, A2 S% U
//kEY GPIO set9 w4 S% f0 \# u3 Z c% O/ W
GPIOBank0Pin1PinMuxSetup();) W: |, |+ `8 h+ K
GPIOBank0Pin2PinMuxSetup();' \9 @6 u( {, b8 C, |
GPIOBank6Pin8PinMuxSetup();8 ?( }1 y$ Y& C) p
GPIOBank6Pin9PinMuxSetup();
4 t6 [1 J) K$ q, B1 J* E GPIOBank6Pin10PinMuxSetup();# k4 _; L" w2 d6 J- I4 N- J, ?
GPIOBank6Pin11PinMuxSetup();
2 n- [; r% D0 u0 ] GPIOBank8Pin12PinMuxSetup();# T0 p1 Y- O7 [5 G4 P2 w
GPIOBank8Pin14PinMuxSetup();2 x/ n0 E# ^/ f
GPIOBank8Pin15PinMuxSetup();$ I9 f. D9 T4 {" P
5 G5 @' t* N: U7 P' n, G' x/ i) f( y
GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);5 w4 L. d- l) `6 B& z
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
/ n {) {) x% z. Z. C* X: `. D GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);3 P: Q7 X3 `1 m
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);, q8 _/ u8 J& P9 J" O
GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);; n* B3 \: d3 W2 q9 K. I+ b9 E
GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);, g) c4 ~4 l7 |; z. |0 |
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);8 b) v ^( e2 i; H
GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
# S, p, t* C+ P9 V7 L GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
! [* N( g8 a2 v2 |+ K- m2 [; C& Q$ x6 U+ D4 B3 k
& h4 t( f2 Q: k" m/ m+ ~9 e4 f
// 底板按键中断
1 p( r' _9 A- F% ~6 r4 o0 R GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
+ K2 B W: ?1 p' u1 C* ?) a GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
+ h* E; B) z; t J2 ?1 q GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left! ^9 E }" F9 ]1 i+ j
GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
. f- J1 X, B# o, i0 f# w GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
2 I4 C+ V, P- B GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right. ~8 a1 v k5 d" U& `
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up+ w% O% f' m _. U, g3 j- M
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
4 d0 w6 e9 U. s GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm" H4 w. l! {! ^4 h. v' H0 u. t( ?
1 p, k" C" x/ O, q( K0 n // 使能 GPIO BANK 中断
, N7 }6 |( v+ G) V9 x% ^& ^ GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO0
+ F) ^' s, T$ C) g6 x) q$ u GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6- p3 p) d* {( H) u, `/ F' ?
GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8
4 I& n& F; ?- f1 @/ o5 D, s _3 p6 R' o7 w
// 注册中断服务函数6 ?# Q8 Y7 L( H# D8 U
IntRegister(C674X_MASK_INT6, USER0KEYIsr);
2 ]+ ]! P9 y1 _- s9 P3 h IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
6 C& t, Q* }/ Q1 R8 {+ ~% C' L5 [ IntEnable(C674X_MASK_INT6);9 `3 L0 V0 M n' y( C
: U: J1 Q3 d# S5 C; _7 x" R6 p IntRegister(C674X_MASK_INT7, USER1KEYIsr);
! H/ T( p' I$ V* X" E2 k IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
% x1 [$ z, U5 F* H, F IntEnable(C674X_MASK_INT7);
' G ?5 b; T! y; Z. d. W
7 `8 T& i2 G! t+ _. | IntRegister(C674X_MASK_INT8, USER2KEYIsr);
$ z0 H% q0 ?, e IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
3 o- n) i, G( f1 `! e- I IntEnable(C674X_MASK_INT8);
2 W* p1 J' i3 H3 r& |但是现在收不到中断,请问问题出在那里?谢谢
- B1 n. n8 p/ u* ?% _8 u D |
|