|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:: q1 b3 n& O0 J! S
//kEY GPIO set
8 Z+ L& i Z- V [+ W GPIOBank0Pin1PinMuxSetup();
9 |( Q8 d& {) V4 {* C GPIOBank0Pin2PinMuxSetup();
: x; x. a: V) z GPIOBank6Pin8PinMuxSetup();1 y' ]: K% Z' ?* r4 S. q g3 d
GPIOBank6Pin9PinMuxSetup();
. R" E2 S: r. B$ n" { GPIOBank6Pin10PinMuxSetup();
8 T5 L3 S5 G5 M: g GPIOBank6Pin11PinMuxSetup();
& m- G& {1 A% `$ F GPIOBank8Pin12PinMuxSetup();
2 y5 P6 x( `' v# W" x% I& l GPIOBank8Pin14PinMuxSetup();, x, K2 i% y4 v3 b# C
GPIOBank8Pin15PinMuxSetup();
' r$ X$ c8 d9 t1 G0 x
: Y6 Q8 g! N6 s' q) [( J: U9 ]; U GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);! ^3 t, S. D, K& ^7 q0 a0 z9 e
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);4 S3 e& K7 Q! W9 K" N, P; Z& }% L
GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);, P3 y2 ]/ J) w. D
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
# P1 r) k! A1 o X) h8 M. w GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);2 ?8 t# w. t9 ~3 Z) O. I
GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);! F, [/ @3 X4 `9 Z8 S4 ?7 F
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
1 w* C) P4 [8 L GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
; d& ?; o y( z GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);7 ?5 J; S3 z- R9 `
" d: z& p: q, d. ]
# [# }4 C/ h a6 m5 ^ // 底板按键中断5 d8 M" `' Y( C! I c5 r
GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
6 y& {9 o1 C: C" k1 Y/ B( V GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none7 p9 [. f0 l" E) u
GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
# e$ c; {8 E6 {( f1 L! d GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok* ?+ a. k' U8 N) q
GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down+ e' r( k: u# C3 G9 z. D
GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right3 g$ }( y, K J; `8 r- B- C
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up
1 K( } F* \/ C6 w' Y7 f GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel0 n8 ~5 o' E5 s3 Q, d# k) R
GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
" V. y* q2 t$ Z, Y/ _1 y& r' t# s7 o g( }4 ]+ g
// 使能 GPIO BANK 中断; M5 B) r6 y" ~3 r% i0 T* ?/ I
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO0/ }, {, ]2 G6 @. h# w; x
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6$ }& K. R( D+ b4 r, G& l6 z' W
GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO85 P, D) F" B3 c) n0 V6 A
* S2 ^; ?( {+ |1 e3 q+ [ // 注册中断服务函数+ r6 d# V! b: H
IntRegister(C674X_MASK_INT6, USER0KEYIsr);+ k: L1 @+ R: E7 {1 A, w7 ]
IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);) g9 S9 n3 D/ a0 Q" W
IntEnable(C674X_MASK_INT6);
0 ]) G+ N2 d- a! i7 H" q+ T8 C6 d3 x$ \
IntRegister(C674X_MASK_INT7, USER1KEYIsr);; Y' c1 Q$ \! o0 r
IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
& O* [% x {9 s IntEnable(C674X_MASK_INT7);
) {- ~- C9 M6 X: @2 y5 c% c- q* v
! k: W* \( L" d5 E IntRegister(C674X_MASK_INT8, USER2KEYIsr);
9 E% p" y6 v7 n7 O* n IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);) w, j9 V4 A6 F2 }4 N
IntEnable(C674X_MASK_INT8);4 f5 P: }8 e$ i8 \' O4 }8 B g e
但是现在收不到中断,请问问题出在那里?谢谢; I5 q$ h+ ^2 M! w/ U }/ v; Q
|
|