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

28335外部中断配置过程

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
28335外部中断基本特点
" y. w- N) y' K- |& \% ]4 a8 l6 C% n* n9 u5 c
5 p- D4 |' V1 F
7个可屏蔽中断源和1个不可屏蔽外部中断源
' Y) ]! H( o0 R, a( W) G- t- J$ |& uGPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)
9 M. G" e0 S4 g: y! p/ gGPIO32-GPIO63可选的中断源为XINT3-7
3 [& J5 O: c. e) H6 d$ J外部中断的触发方式可选上升沿或下降沿触发
9 p7 _7 H; H' k; I, I: b**外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。
1 d  t2 \) `) a, i- D2 ^0 L2 O- B" A0 W! K9 c) P
外部中断配置过程
0 i6 d3 _. e& N" |7 P7 m
+ S' _) F4 K; N) O+ ]+ L7 l

) _4 X6 b' j# V% t其实28335的外部中断配置相对其他外设的配置来说比较简单。不过需要注意XNMI和CPU定时器1中断一起使用时,需要将其中断的映射位置配置好。
9 ~7 U6 ^" y$ j  J% l1 I4 b9 A" R  z4 c$ C

$ M+ ~  Y: M+ [# j**首先将需要配置的GPIO端口配置为通用输入端口**。**上拉不上拉**,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。这里以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。# e5 {4 k9 n/ o& o" \; i
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO
8 b; h9 t+ J+ ?" U6 iGpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入: A: q" F/ d8 ~$ U7 r6 y0 i2 M
GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)0 N. h- W: I4 \1 g# G+ W" a
GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样' C1 P& _! a) _% N& M% a8 H# ^
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉( M( W$ I  T9 G( E0 e
将GPIO配置到响应的中断源上。
2 h4 E2 Y' h; Z4 O& y3 [* T5 x//下面这句话按手册应该赋值为2,但是写34也没错,想一想为什么?
# M% \- |0 R1 k6 S5 v" Z+ SGpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; //选择34端口为外部中断3中断源& @- i) U4 i# O
选择触发中断的方式。
( O& @4 a/ E' e0 b9 d$ cXIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发: |+ W5 \+ U$ M( |: e
使能外部中断
) F( i% M. I% t. @& i' dXIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断
: y' d2 O" ^# a- w* R( x2 X最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。
* l: E# T8 N0 e/ o! v- rPieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3/ I2 C& i3 n0 I( g: J
IER |= M_INT12; //使能第十二组CPU中断* t  O& K" u7 e
PieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数
! Z( S4 j5 ?0 |% B% m) O# P; `* l# B上面基本上已经完成了外部中断的配置,但是对于XNMI来说需要加入下面这句话,以防止CPUTimer1中断连接到不可屏蔽中断上。5 D9 o3 F8 O: L: u' i1 B
XIntruptRegs.XNMICR.bit.SELECT = 0; //Timer1连到int13,XNMI连接到NMI* l3 ]! r, y5 p, N8 x. M

0 }/ M8 Y# H% K; G  v; K/ S  T' H

该用户从未签到

2#
发表于 2021-12-24 16:22 | 只看该作者
XNMI和CPU定时器1中断一起使用时,需要将中断的映射位置配置好

该用户从未签到

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

该用户从未签到

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

该用户从未签到

5#
发表于 2021-12-24 16:24 | 只看该作者
GPIO32-GPIO63可选的中断源为XINT3-7
  • TA的每日心情
    开心
    2022-12-27 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2021-12-24 16:24 | 只看该作者
    外部中断的触发方式可选上升沿
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 21:47 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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