找回密码
 注册
关于网站域名变更的通知
查看: 300|回复: 5
打印 上一主题 下一主题

28335外部中断配置过程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-12-24 15:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
28335外部中断基本特点. e% x2 ]( S: P9 s: y5 i

6 F* I$ Y; {7 V

0 ~' n: M# w/ ~" e) j9 @, }7个可屏蔽中断源和1个不可屏蔽外部中断源
; k9 F6 }- E. ~; Q' c  q0 TGPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)9 g4 k3 r+ n( d+ p. Y
GPIO32-GPIO63可选的中断源为XINT3-77 |: w0 C8 C- v* E+ o& a/ j
外部中断的触发方式可选上升沿或下降沿触发
9 ~& q# `/ r, e( z**外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。2 Y1 W$ g* y0 z# w. T

8 S* l3 H% m% p  n9 q% a! w外部中断配置过程- n' }2 H- ~* z( T% Z* ]

) \. e8 r5 A3 ?# V0 M! J6 r
. ]# u4 q* o/ x+ O
其实28335的外部中断配置相对其他外设的配置来说比较简单。不过需要注意XNMI和CPU定时器1中断一起使用时,需要将其中断的映射位置配置好。
. x7 u) }" d# [
8 `6 V; Z. ]4 ^8 k8 c

9 H: {/ H% f7 s**首先将需要配置的GPIO端口配置为通用输入端口**。**上拉不上拉**,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。这里以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。
9 W- Z- x7 R3 EGpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO
: T/ E( N6 N) I. o& ^( c6 o: dGpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入) U0 Y6 I- x2 I# g
GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)+ h; P, `( A" f* E" ^& s3 h/ c, ?
GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样/ _3 o/ c5 e( |1 Y- R
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉
' ?& i; m" M, l5 z! e将GPIO配置到响应的中断源上。
7 c) L, g+ G# ^, p//下面这句话按手册应该赋值为2,但是写34也没错,想一想为什么?% ~8 b9 H; x' c# |0 X  C$ E+ s  t7 @
GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; //选择34端口为外部中断3中断源5 u! l. |8 j" e) F
选择触发中断的方式。
: u8 h) m$ ~9 s) X- T6 K: n& k$ ?XIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发( K  z6 W# X& R
使能外部中断" `" w% p6 t$ N6 J
XIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断
! u& @# y9 l% e% \. r! M最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。  a- \( w. M  Z4 N- Z0 X. w
PieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3
" y. F  y7 q) i  v9 wIER |= M_INT12; //使能第十二组CPU中断
* R: F! s  H) A, G% z  Z/ wPieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数( c6 \6 j& b7 |; i/ M9 A9 }8 x
上面基本上已经完成了外部中断的配置,但是对于XNMI来说需要加入下面这句话,以防止CPUTimer1中断连接到不可屏蔽中断上。
$ p- j, H9 V" K5 O0 tXIntruptRegs.XNMICR.bit.SELECT = 0; //Timer1连到int13,XNMI连接到NMI
# N5 ^! d9 Y: g# O% B
! c- g+ P/ p5 N: X& X, Q/ X8 c( ]. U; ?4 w
  • TA的每日心情
    开心
    2022-12-27 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2021-12-24 16:24 | 只看该作者
    外部中断的触发方式可选上升沿

    该用户从未签到

    5#
    发表于 2021-12-24 16:24 | 只看该作者
    GPIO32-GPIO63可选的中断源为XINT3-7

    该用户从未签到

    4#
    发表于 2021-12-24 16:23 | 只看该作者
    防止CPUTimer1中断连接到不可屏蔽中断上

    该用户从未签到

    3#
    发表于 2021-12-24 16:23 | 只看该作者
    在中断函数中只用清除PIE中断

    该用户从未签到

    2#
    发表于 2021-12-24 16:22 | 只看该作者
    XNMI和CPU定时器1中断一起使用时,需要将中断的映射位置配置好
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 23:25 , Processed in 0.140625 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表