|
我现在有8个按键,分别在GPIOBANK0,6,8,现在我想将这几个bank中断映射到INT6,7,8,可以这么做吗?还是只能映射到中断4或者5?我现在实现代码如下:" A" d& b* u" G* G1 `
//kEY GPIO set3 p2 o+ [7 ~; v
GPIOBank0Pin1PinMuxSetup();9 k+ i" h( w4 o0 D8 R, h
GPIOBank0Pin2PinMuxSetup();
7 j9 h3 M, ~: d- F) W GPIOBank6Pin8PinMuxSetup();' Y& F' {) r* @) X) M! {8 E/ M
GPIOBank6Pin9PinMuxSetup();
& G1 {7 k$ w! X% M+ r. \3 _ GPIOBank6Pin10PinMuxSetup();
p# e8 u* d' j1 C GPIOBank6Pin11PinMuxSetup();4 N1 ~! ~: _, ]6 \9 I: l
GPIOBank8Pin12PinMuxSetup();0 K, O- d* g! U! c- N2 J2 i8 [
GPIOBank8Pin14PinMuxSetup();
, v) j9 A! @2 P+ M, X% b GPIOBank8Pin15PinMuxSetup();8 Z2 L: K$ W* p
# @" v/ W& u+ u" W2 M* @5 d GPIODirModeSet(SOC_GPIO_0_REGS, 2, GPIO_DIR_INPUT);7 Q) S' g$ b1 e, P2 h) ]
GPIODirModeSet(SOC_GPIO_0_REGS, 3, GPIO_DIR_INPUT);
2 h$ g- T, u- s8 E* q$ y, V GPIODirModeSet(SOC_GPIO_0_REGS, 105, GPIO_DIR_INPUT);" I$ ~6 e9 p9 ]% c
GPIODirModeSet(SOC_GPIO_0_REGS, 106, GPIO_DIR_INPUT);
9 k0 W# N) s1 o1 J5 Z4 O& s5 v N& p) j GPIODirModeSet(SOC_GPIO_0_REGS, 107, GPIO_DIR_INPUT);
+ z2 J1 B! B6 ?5 `2 T: R GPIODirModeSet(SOC_GPIO_0_REGS, 108, GPIO_DIR_INPUT);
$ ?0 \; N7 l2 w4 y1 y) k GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
' W) O0 ^! Z6 V( n/ ]7 Y6 u GPIODirModeSet(SOC_GPIO_0_REGS, 143, GPIO_DIR_INPUT);
/ U; ]9 i. b9 j s GPIODirModeSet(SOC_GPIO_0_REGS, 144, GPIO_DIR_INPUT);
+ v: C" y. ~8 B( ]0 x% }5 d
' m x. R3 x3 V0 x5 |( R1 u$ v
// 底板按键中断9 N' V1 _! Q( {- C' Z6 w! W* B
GPIOIntTypeSet(SOC_GPIO_0_REGS, 2, GPIO_INT_TYPE_FALLEDGE);//key none
* |; R7 P ^2 b GPIOIntTypeSet(SOC_GPIO_0_REGS, 3, GPIO_INT_TYPE_FALLEDGE);//key none4 I: L7 m5 `# W
GPIOIntTypeSet(SOC_GPIO_0_REGS, 105, GPIO_INT_TYPE_FALLEDGE);//key left
% g% A+ v+ q( X4 S8 A6 y GPIOIntTypeSet(SOC_GPIO_0_REGS, 106, GPIO_INT_TYPE_FALLEDGE);//key ok) W: c8 e2 j7 P
GPIOIntTypeSet(SOC_GPIO_0_REGS, 107, GPIO_INT_TYPE_FALLEDGE);//key down
1 y$ z: J4 e l8 q GPIOIntTypeSet(SOC_GPIO_0_REGS, 108, GPIO_INT_TYPE_FALLEDGE);//key right! M8 n1 h% l. {
GPIOIntTypeSet(SOC_GPIO_0_REGS, 141, GPIO_INT_TYPE_FALLEDGE);//key up0 A9 |9 h9 E" x! }! s- D6 D% W, p( g" w
GPIOIntTypeSet(SOC_GPIO_0_REGS, 143, GPIO_INT_TYPE_FALLEDGE);//key cancel5 i- J5 m2 f( h) ?
GPIOIntTypeSet(SOC_GPIO_0_REGS, 144, GPIO_INT_TYPE_FALLEDGE);//key confirm
. @7 x; Q9 F, k6 Y$ T; F. n8 U2 A' y) f, f+ r& Y
// 使能 GPIO BANK 中断' }* }6 y! n2 h Y8 ~
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0); //GPIO05 V7 ~% L* e* m+ B2 U
GPIOBankIntEnable(SOC_GPIO_0_REGS, 6); //GPIO6) K1 R% v8 P' G- q# D
GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); //GPIO8* c0 m+ n; ?) \. D
9 |2 t7 x( X( i9 Z+ S' P) A3 E0 v
// 注册中断服务函数
/ |' o% e/ M4 q% C z IntRegister(C674X_MASK_INT6, USER0KEYIsr);* C- C3 ]5 U9 w5 T5 z7 U
IntEventMap(C674X_MASK_INT6, SYS_INT_GPIO_B0INT);
$ F1 l% L. I1 I( i' B) d0 | IntEnable(C674X_MASK_INT6);9 L2 s- I2 }+ O6 b
9 ]" Q/ C7 D! a! @ IntRegister(C674X_MASK_INT7, USER1KEYIsr);
2 T! k( s5 m) `$ t, O IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B6INT);
, u( a8 y& d; e8 s, E7 R% r IntEnable(C674X_MASK_INT7);1 K [; i' U1 \8 G& {2 ~, m. \" C% f' u4 M
- X6 z+ I+ |# q) B& F& I: A
IntRegister(C674X_MASK_INT8, USER2KEYIsr);
5 t- n2 c+ v ]) p0 g Z, ~% W IntEventMap(C674X_MASK_INT8, SYS_INT_GPIO_B8INT);- q! x U d7 y' B! N
IntEnable(C674X_MASK_INT8);5 {6 M) _/ g& K7 p4 h. Q
但是现在收不到中断,请问问题出在那里?谢谢
6 x# _1 O, Z j/ {* ]5 Q |
|