EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
外部中断: 器件 HXS320F2803X支持三个屏蔽的外部中断(XINT1 - XINT3)。可以选择用上升 或 下降 和 上升边沿 触发,也可以选择 使能/禁用 这些中断,它还包含一个16位自由运行计数器,该计数器重置为零,可用于为中断准确地打上时间截。没有用于外部中断的专用引脚XINT1,XINT2和XINT3中断可以配置为GPI00 -GPI031引脚的输入。 首先将需要配置的GPIO端口配置为通用输入端口。上拉不上拉,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。: _( D7 t* V/ H/ }
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO
. c% ?+ w5 Y7 ]GpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入. j0 R! T! p# L+ D3 `6 m
GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)
* t$ j. y) m0 M" X3 K/ {8 UGpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样
+ r4 A2 j- a. G' u/ C) Y i. v! j! mGpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉" X7 U0 F1 l, u4 W# s
将GPIO配置到响应的中断源上
q$ T7 b4 m# S0 wGpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34;//选择34端口为外部中断3中断源 选择触发中断的方式。# @1 _: U( x& \% ?5 _8 s- Q
XIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发1 j! g" s9 ~; {) B
使能外部中断8 V* |6 n: b; F# h, t
XIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断
4 x' w; D, a+ y! g! S( C5 d: _: Z: A最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。
/ F! J( g( _; L$ a0 |1 [PieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3
& X1 T' t6 P6 u1 Y2 WIER | = M_INT12; //使能第十二组CPU中断0 O2 V$ U3 J o) M
PieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数. _: _! z4 X$ c( V3 P
+ g& U' Q+ `: f) l9 `/ ]1 U定时器:3 F0 r0 e+ ^* f6 D7 @8 o2 D
寄存器:+ Q' q8 f7 ?3 j7 C7 y. P1 Z
tiMERxTIM 计数器低16位
9 H3 p0 ~5 ?! [/ f' `$ `3 g% c6 d% ], m) s6 l
TIMERxPRDH 周期寄存器高16位
9 C9 p2 W0 v" t, D/ [. Y: [3 ZTIMERxPRO 周期寄存器低16位: x3 R+ Q! R& h3 W6 K& F& ]# j
2 Y, {3 m* b* L
TIMERxTPRH 高8位PSCH、低8位TDDRH; O: X+ S# Z z. u; t I0 {
TIMERxTPR 高8位PSC、低8位TDDR
) h$ P% ], v) j$ }& O/ J+ L9 W4 D( f$ k& d6 ~
TIMERxTCR 定时器控制寄存器9 E- Z& X+ a5 K7 `$ q, i/ S
位15 TIF 中断标志位 ,1有中断,0无中断& q. S t# O* U7 x* s
位14 TIE 1允许中断,0禁止中断
4 U- ` d8 q, E: }( F位 5 TRB 重载,1装载周期寄存器
2 B" r r2 [! ` \* F: \) U位 4 TSS 1停止定时器,0启动定时器
" L, M! V, @9 o0 K) b' `/ X- s; v( O. R. E3 {1 w2 A4 @
APWM模式:
! e" d5 L G0 J2 n在apwm模式下,w_aprd = r_cap1,w_acmp = r_cap2,cap1代表周期,cap2代表cmp初始化r_apwm_out为0,cap模式下r_apwm_out始终为0,o_ecapen = 0; 通过CTR计数器分别与cap1周期,cap2的CMP相比较,在CTR = PRD与CTR= CMP时产生动作:e apwm模式下,r_tsctr =w_acmp.将r_apwm_out置0,r_tsctr = w_aprd.将r_apwm_out置1通过w_apwmpol选择极性后输出。
6 S5 F9 [% c8 e4 h定时器中断:
7 ~: _, C3 h1 H/ w$ a5 w# q4 k) F 定时器寄存器介绍: 共分为三个Timer0/ Timer1/ Timer2寄存器, 每个模块由计数TIM.周期PRD, 控制TCR.预分频TPR组成。
* z3 I2 Y1 x6 O+ L' s4 @+ ?) ? 其中TCR控制15位为TIF中断标志,写1清除中断,14位TIE中断使能,5位TRB重装载控制,写1载入Timer计数与预分频初值,4位TSS暂停控制TIM计数值,减到零后会将TCR.TIF置位,并由TCR.TIF与TCR.TIE给出中断TPR 0-65535对应1-65536分频1 u5 F0 P" L. O- p- Y( ~+ f; G% ]
|