|
|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:; e- [1 t6 F ~
//kEY GPIO set, ?: L. C: L& T0 v2 |1 ~; j
GPIOBank0Pin1PinMuxSetup();
8 f& T" H1 y- \! E: x( A0 U GPIOBank0Pin2PinMuxSetup();$ e8 H& O' o( J" s! Y% e
GPIOBank6Pin8PinMuxSetup();/ ^2 Z# v; {! z" V- Z9 l+ t
GPIOBank6Pin9PinMuxSetup();
* J' D! L1 C6 p( r/ D1 A/ S GPIOBank6Pin10PinMuxSetup();% {2 v# k0 T; x
GPIOBank6Pin11PinMuxSetup();7 D4 u( z0 l: r3 y
GPIOBank8Pin12PinMuxSetup();& @: ]! k9 H* p0 V2 W4 W) \: p2 y
GPIOBank8Pin14PinMuxSetup();
& ~: w' A$ X7 u% x GPIOBank8Pin15PinMuxSetup();' Q% X1 D, E9 K
* _3 R, O3 A2 x2 a4 B% _
GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);. l7 a% s1 x' v" r0 U
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);+ D& ?2 `8 U) U1 W" z* k
GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);& ^9 R3 {, q. ^( S
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);/ j9 F' t5 K, _; \1 P, R& Y# Q
GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);/ }) m$ O+ z2 e) w+ D9 X2 w
GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);4 u7 I( V' @* n( q1 D) s( a& a0 a: j( Q
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
" ~, Y# V! G' |8 y' J GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);) I/ j. A3 l, N9 ]7 N% X
GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);8 n+ o: g, S5 J) r( K
# C) Z" ~0 u' C7 \
' j* ?8 B8 B; l3 L8 X3 ]4 s // 底板按键中断
2 ]* d) A7 v- k8 G/ y, o GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none! Q. Z3 j7 h3 |2 J2 H4 W5 @& h A
GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none7 c3 k/ Y1 I8 L9 X7 L
GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left' r1 e7 N- {8 x
GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
- G) g1 E4 n; F, h, \8 J B! A GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
$ Z& r3 l) y9 K3 B GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
: `8 \% X( `8 p) L Z5 _ GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up5 P0 \$ A- C. L" j, `. [: u0 @3 ]
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
. J' v4 K" B8 r$ f; A+ s GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
0 q' ~; k! @# I7 W6 B( f( }/ v( `) y" N3 F( O+ z
// 使能 GPIO BANK 中断5 Y+ I" l1 m8 p; p
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO03 l5 f3 p& D8 c% [( n! ^- W- N
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6
4 V& {6 G' y W' `5 P+ X5 f$ [: n6 F GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8
" q3 I+ T2 L( D9 s0 \& A3 T
0 l( R6 I3 R# R+ D4 _ // 注册中断服务函数6 ?9 i2 x) o# `& `8 e, C" [7 e
IntRegister(C674X_MASK_INT6, USER0KEYIsr);
! R( y' J; N, V& ^/ O) v0 ~ IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
q, B" U6 B8 O3 b. ] IntEnable(C674X_MASK_INT6);
/ a7 B4 ?- [. l B
) }6 ]' n1 e* ?- g# r/ A IntRegister(C674X_MASK_INT7, USER1KEYIsr);
3 c+ n* u T- D H4 d IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);* d" L' }; J7 M% {. u
IntEnable(C674X_MASK_INT7);. R7 s( t8 u; u' A% B
6 o( W, j' |8 L3 _. J: g! A IntRegister(C674X_MASK_INT8, USER2KEYIsr);
+ h; _# L/ X* P3 m1 _: \7 e, C' n IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);6 j9 r) H- I( \0 E8 R3 _6 ]
IntEnable(C674X_MASK_INT8);
T! H# c P3 z- R* M1 C9 L3 m但是现在收不到中断,请问问题出在那里?谢谢; r3 o+ h# o K9 g/ @
|
|