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

28335外部中断配置过程

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
28335外部中断基本特点  U: _" j, e. s+ \1 Y
& Z, }* s6 W7 Q# ~: k, X( Z/ F* k
) w1 T- y  ^9 K0 ]% j6 }3 h7 y
7个可屏蔽中断源和1个不可屏蔽外部中断源
  Y  s/ C; b* v. P/ w( TGPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)2 f/ W% s3 q' P+ T7 m
GPIO32-GPIO63可选的中断源为XINT3-7: _  h8 v8 a) @: ~1 a" F: [
外部中断的触发方式可选上升沿或下降沿触发$ v! \" z- o1 k) K. T$ o
**外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。
- c! d( p! ]3 @' k2 E2 e0 C/ l3 C$ v; p% z  t; u# u
外部中断配置过程
, U4 P  |# n5 o$ u1 F* t9 z3 F& S% o. L) c5 |/ q; U

( l& w7 `( g4 N; U5 A其实28335的外部中断配置相对其他外设的配置来说比较简单。不过需要注意XNMI和CPU定时器1中断一起使用时,需要将其中断的映射位置配置好。
. P- s8 E5 r1 ~. X/ E
$ \! }$ Q/ r: s

' m3 }6 w/ V: y( i  \**首先将需要配置的GPIO端口配置为通用输入端口**。**上拉不上拉**,采样次数和与不与系统时钟同步都无所谓,不会影响中断的配置。不过如果噪声过大的话,建议使能上拉和选择合适的输入采样滤波。这里以GPIO34为例,将其配置为上升沿触发XINT3的中断输入源。下面所有寄存器的配置受到EALLOW的保护,因此需要解除保护在进行设置。
$ j; v4 ~) g' x- E+ gGpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO
, N' G, o9 `' V/ @, dGpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入
0 Q* {9 S0 e' `3 h) m* mGpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)& y5 ]5 W! f; H* o, s9 A
GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样
3 E0 S7 [' B8 @5 L% k5 m# n9 ZGpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉% D. j( o" l, k
将GPIO配置到响应的中断源上。
; R+ U5 F- j5 z' z  @//下面这句话按手册应该赋值为2,但是写34也没错,想一想为什么?& o# }: x  a3 I6 S$ W  V
GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; //选择34端口为外部中断3中断源3 u, x7 I# ]+ b
选择触发中断的方式。
6 [  k. q: D& ?XIntruptRegs.XINT3CR.bit.POLARITY = 1; //上升沿触发
; |8 ^% B) m/ S9 {使能外部中断
3 l# _1 ?+ W/ l) X4 D6 C/ oXIntruptRegs.XINT3CR.bit.ENABLE = 1; //使能外部中断
; d3 |3 {; J0 f# ]最后使能PIE中断和CPU中断,如果需要还可以重新定义中断入口函数。
6 R7 u* h  H1 u' m+ c0 IPieCtrlRegs.PIEIER12.bit.INTx1 = 1; //使能PIE外部中断3* l* C0 T+ z  B% y( _9 }
IER |= M_INT12; //使能第十二组CPU中断6 D+ F3 t8 ?. m$ e+ j
PieVectTable.XINT3 = &Xint3_ISR; //从新定义中断入口函数0 Z: \. r3 O& P
上面基本上已经完成了外部中断的配置,但是对于XNMI来说需要加入下面这句话,以防止CPUTimer1中断连接到不可屏蔽中断上。9 ?' L! _8 Y8 n5 _0 U4 Z7 |
XIntruptRegs.XNMICR.bit.SELECT = 0; //Timer1连到int13,XNMI连接到NMI' F- o/ E1 f  ?# \

2 m5 x3 l$ Q2 f6 _, p4 z6 Z% X1 C* O4 E! m2 ?+ O& t, j# L5 k

该用户从未签到

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:00 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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