|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:
; @) s, u# r3 z5 L& r% N //kEY GPIO set
0 z# ^1 R+ a9 d9 _ GPIOBank0Pin1PinMuxSetup();
; c; }) [! n) N- L GPIOBank0Pin2PinMuxSetup();$ w4 E& A' k" @* Z6 y3 O
GPIOBank6Pin8PinMuxSetup();
1 k8 Q& q- L0 Q7 U2 U GPIOBank6Pin9PinMuxSetup();+ ^# t6 X6 ], d* w
GPIOBank6Pin10PinMuxSetup();; [& R/ `9 b0 {6 k5 z2 }9 c: l
GPIOBank6Pin11PinMuxSetup();' i6 A. G9 P8 n; L+ T
GPIOBank8Pin12PinMuxSetup();
- B m. ], l( m4 l3 ~8 t$ b7 O; C GPIOBank8Pin14PinMuxSetup();6 j( O$ G4 o/ H; T, d" E5 T/ |. M$ U
GPIOBank8Pin15PinMuxSetup();
4 ]/ v) {. [ `
- M- O6 ?) o" |3 I2 o GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);. I. D, o' H0 v7 Y: ~- W( M
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);) q# C4 a- d- K3 G5 Q0 A+ q4 |
GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);" N3 t i: t/ P. J8 j& ]9 b: u
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
+ t6 X& ~7 h8 q! {& f GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
! s# _, Q R! l. s# V8 v9 m) z GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);6 d. \( k& t f. K5 B
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);* d* O4 U" @7 C, R9 l( F4 F* ^
GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT); A4 t+ o4 Y; l& t) m3 e) S$ D
GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
/ G8 n2 X1 ~9 l' ^( B4 l5 Z
Z4 z* [0 p) w o: t1 w4 Q$ p
) I" e! t+ K" V' f$ w // 底板按键中断
9 B' J% U0 I: Y5 a A8 |" U GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none1 ~8 W3 ~, @# m; a6 i; L* i, l
GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none
- z4 H9 f! w# ] GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left- G$ k( a- A# l/ b+ f2 ?5 W
GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok3 \" E9 t. r( z c6 E
GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down ~" c& T5 ~% Q
GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right5 D. {# o/ U8 }! m7 a$ ]
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up) F2 M# N0 K6 G, Y4 ?8 N
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
# O) C' i7 F$ Y6 u! m* A, E( N GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
. B. s: Q" t ]$ i5 I+ v7 \1 d% z1 L; N9 K. o9 O9 H# B+ O+ a5 v3 X
// 使能 GPIO BANK 中断8 _& E& j( q' R G
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO09 E1 n4 c' `3 e) A; ~5 F
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6
" y, {& |+ h: u GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8% p r5 q R8 i- B) R3 V
7 ]5 s! K# d; W c* _! f& A // 注册中断服务函数
. ~$ k* F0 J# Y% W" T, W; O IntRegister(C674X_MASK_INT6, USER0KEYIsr);
! O3 e$ t9 G4 H4 C3 k IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);, r" @8 `/ s" ~7 P
IntEnable(C674X_MASK_INT6);6 K1 N& C4 _' J y
& m5 @, o% G/ f7 g9 S* w
IntRegister(C674X_MASK_INT7, USER1KEYIsr);
7 |' Z9 N4 X% s/ U) l; F9 d IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
' w* k; t6 Z! O# y$ o5 A$ I IntEnable(C674X_MASK_INT7);
" d7 ?7 r9 s6 b
r5 w( g5 O9 C) J% P IntRegister(C674X_MASK_INT8, USER2KEYIsr);% K1 q6 c; V1 `# ^7 t
IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);. A5 U. ^- \2 y5 i6 H7 o7 D
IntEnable(C674X_MASK_INT8);/ [+ j- l4 K Y4 ?
但是现在收不到中断,请问问题出在那里?谢谢& p, Q3 X2 v3 B+ W) c7 o0 ^; n0 C
|
|