|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:; g9 t- s4 Y0 t$ \% J
//kEY GPIO set
2 O* J9 C4 N% b GPIOBank0Pin1PinMuxSetup();0 P3 b4 P$ l* R# m
GPIOBank0Pin2PinMuxSetup();
6 z# B; i" J# ~, y `! w2 ` GPIOBank6Pin8PinMuxSetup();
# T3 v, J2 g/ i) p1 @* e1 U GPIOBank6Pin9PinMuxSetup();
: i4 J, K1 _. n- ~0 f; } GPIOBank6Pin10PinMuxSetup();, z" Q) z! c j% R1 e* E
GPIOBank6Pin11PinMuxSetup();6 g1 [( `+ ?4 T
GPIOBank8Pin12PinMuxSetup();
# J3 q6 l1 U+ J+ ` p3 \% o GPIOBank8Pin14PinMuxSetup();
) _0 f S8 r3 N7 j! r GPIOBank8Pin15PinMuxSetup();' h! W0 B) b7 A o9 I; V9 \( q
' c' ?3 M6 h! |
GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);0 b; D8 M& c% a, n [
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);, l2 }+ R7 w# K+ g( Y
GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);; |4 H! ?' u% b: _
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
7 o+ W; L0 U" `$ j; p& u- ]% n GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
$ h9 Q, g( Q, X5 c, v6 ^' }/ h GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);+ U7 H; q3 N8 y1 p
GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
8 W" a- L" F5 | GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
6 `) W8 m+ w4 I$ t( o7 L% I9 l GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
1 F" H; h+ _: w: L, L+ q! R0 Q, B5 f1 V
3 `! a% j# l; [7 a( `- _
// 底板按键中断3 b( W7 M7 Y7 ]$ T8 ^! w+ v
GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none& a' }) d2 u9 ~
GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none' f+ |0 p3 i ]
GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
" q9 o9 j( l1 M! e! `* Z GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok
5 `0 p6 V- ]. ] GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
5 l; @& m8 Q2 w/ ]+ L GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right
* u5 k0 }$ O$ e9 ~% X w$ g" K! D GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up) ]* B4 E7 }, z* H
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel
! y/ _) ^! z# K GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm3 D1 w" Y8 [% s' {, D4 _9 \
$ s& b% Q8 o. t+ a2 U // 使能 GPIO BANK 中断5 @- u6 q4 F4 o/ k
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO06 S1 U! _4 S/ j! x, |
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6
( f9 p3 X4 _8 d2 Y& r- l7 ` c, D GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8
1 \ R9 P- s) w# i2 v- Y! B0 i; j/ L4 M* z7 f: C: ~! [
// 注册中断服务函数
2 T2 w, T# H' [7 r. e2 |7 ` IntRegister(C674X_MASK_INT6, USER0KEYIsr);
4 B) w2 F3 ^! c* S) F( r IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);4 X% h( X8 D' K2 o3 w; k7 |- X
IntEnable(C674X_MASK_INT6);
8 n% e. f2 U2 `: U; o$ l! @% I
2 }- p0 q# ]0 F# F5 G( \: t IntRegister(C674X_MASK_INT7, USER1KEYIsr);
3 @5 r8 v3 o' g9 ]8 a3 T6 i IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);* K- d; n# e, \8 A- ~' D, G
IntEnable(C674X_MASK_INT7);
, O/ I# {, ^' z! Y
2 T! n: m1 l! U; b% O7 ]6 |! D IntRegister(C674X_MASK_INT8, USER2KEYIsr);
$ Y$ P( S z( [( G2 r IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);
8 k5 {+ A3 W4 \/ M7 s IntEnable(C674X_MASK_INT8);
! g7 j* |7 m- S" j& [$ ]但是现在收不到中断,请问问题出在那里?谢谢
) Y4 X' j N$ R0 c" j [ |
|