|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
28335外部中断基本特点( ^2 g [ |( P: O
% x! F' w- W0 m7 r
# P3 ]4 b* y* d# m5 p9 Y+ ^, f. E7个可屏蔽中断源和1个不可屏蔽外部中断源4 _1 x' X* b8 }- E/ v$ ?8 s2 H
GPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)
' j7 z# ]2 B) u$ [: qGPIO32-GPIO63可选的中断源为XINT3-7/ ?" ?) X8 Z1 o+ h2 n3 ]
外部中断的触发方式可选上升沿或下降沿触发
: v$ Y4 u4 H, B**外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。7 k. q7 l s T. J; S# w
8 A. m9 s) m/ f9 W' n) V$ W$ N
外部中断配置过程, H7 g- q o$ I8 r9 [! x
* W y4 |, _& T/ K
0 J+ I s2 v6 N) v. C; \) N5 ?其实28335的外部中断配置相对其他外设的配置来说比较简单。不过需要注意XNMI和CPU定时器1中断一起使用时,需要将其中断的映射位置配置好。/ J# K7 o" G. z: i$ B
, @/ t" O/ M8 K1 V
/ ~; Y7 l4 ~9 A* i+ e }
**首先将需要配置的GPIO端口配置为通用输入端口**。**上拉不上拉**,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。这里以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。
* h: O5 z2 z- }: P2 }GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO5 a. u- f; S+ @0 a% K6 A2 F! T
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入
# ^) ?6 u" [* OGpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)
# D2 J1 i( ]4 V/ z5 g- ^ G: F2 VGpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样) q' _' r0 `' t! n7 g
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉
4 q4 w% L. W o6 l# L) T3 V& r! n将GPIO配置到响应的中断源上。! x: _" u7 K- n ^6 G" }% ~
//下面这句话按手册应该赋值为2,但是写34也没错,想一想为什么?
3 j z9 ^: f) x9 r7 o# wGpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; //选择34端口为外部中断3中断源$ }' p# L V4 `" S" T
选择触发中断的方式。6 }: ^$ _, N$ X2 s
XIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发
- Z; c F9 L: S# w使能外部中断+ x5 m1 `" p5 i: k
XIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断" k- {: J" \" T8 z
最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。
- N& p5 B% d: t9 N. wPieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3
& q" _! D- Q! d+ J4 Z) HIER |= M_INT12; //使能第十二组CPU中断. ^) R% U8 E) ]+ |% V$ P( E8 M
PieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数, m& W! \% [1 i/ H8 s k* X
上面基本上已经完成了外部中断的配置,但是对于XNMI来说需要加入下面这句话,以防止CPUTimer1中断连接到不可屏蔽中断上。
% o5 G( D- j# }+ U. a3 rXIntruptRegs.XNMICR.bit.SELECT = 0; //Timer1连到int13,XNMI连接到NMI/ C$ }# P8 ?; b/ [4 l' n( [
, U. t" k) O( b: {! l
6 g8 K5 e7 X0 t/ l) a5 R: ^ |
|