|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
28335外部中断基本特点$ U- ], `$ @1 W4 r
" ^% b6 U. d6 S; F) N0 F
" r& l! `* T* a' I% [7个可屏蔽中断源和1个不可屏蔽外部中断源
/ |3 B, m. ^8 o) S5 p* V' `GPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)2 @0 E$ w6 r9 F2 t# f
GPIO32-GPIO63可选的中断源为XINT3-7) _1 O; ]6 M5 N/ A5 @; v3 r: g0 ~4 @+ d
外部中断的触发方式可选上升沿或下降沿触发
5 F' I7 @: C* _4 C+ `: f% [**外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。
) }. S4 Y4 O6 m1 ?$ K5 ^0 ]" w7 x# Y5 Z1 o5 g" d; e5 V7 ~+ R( i% j
外部中断配置过程
" M2 i0 i1 z4 S# q6 z
/ _0 k+ s0 T6 P( U, X+ }
u H! F. ?& S2 i* Z其实28335的外部中断配置相对其他外设的配置来说比较简单。不过需要注意XNMI和CPU定时器1中断一起使用时,需要将其中断的映射位置配置好。! R/ L1 p- \( p' @# Q$ P6 U
, U8 Q& n# a8 R- R. a4 l8 s0 ?, ~ J, i: @: ?
**首先将需要配置的GPIO端口配置为通用输入端口**。**上拉不上拉**,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。这里以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。5 _' c: Y) x M( X7 x D
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO! q' ]/ Z0 c3 o8 O5 V9 n- X7 p9 R
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入" y2 L8 Q- R- I y) o
GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)
6 `8 F2 N9 H! m( w. e7 c( }! `GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样3 l$ w! H/ ]7 u' h' K! k4 Y
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉
9 C8 v' e" }: a5 @9 c! n, v6 S" s将GPIO配置到响应的中断源上。
( h0 \1 O2 w% q$ i2 i. w0 e//下面这句话按手册应该赋值为2,但是写34也没错,想一想为什么?
9 h4 G1 g6 C2 ~GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; //选择34端口为外部中断3中断源
1 X# ]7 a, i% c0 R8 F5 u选择触发中断的方式。! a! K( p8 d- r9 k r# X7 H
XIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发
+ s. n% Q5 d; Z ~使能外部中断( G9 K6 A$ E+ L( d4 l/ f' l" Z
XIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断
# ?" L9 Q1 d7 Q. o5 Y* O* u6 b最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。! c; h9 K: `. \& m
PieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3
' j7 _0 S8 n( q% j8 x8 }1 CIER |= M_INT12; //使能第十二组CPU中断! g/ [; f) n& [( g" w8 E2 ` s
PieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数
. O0 ~) D9 ]+ j; F5 P' G* k- j- m上面基本上已经完成了外部中断的配置,但是对于XNMI来说需要加入下面这句话,以防止CPUTimer1中断连接到不可屏蔽中断上。4 m3 N: [+ L2 x8 v
XIntruptRegs.XNMICR.bit.SELECT = 0; //Timer1连到int13,XNMI连接到NMI
+ K: T0 u- r* J2 |5 Q' ^1 M* U6 q3 W n% j0 G( m
r! n, X n/ a! X* W |
|