DSP28335的3级中断系统

外设中断标志产生——外设中断使能——PIEIFRx置位——PIEIERx使能——判断PIEACKx——IFR置位——IER使能——判断INTM位——CPU执行中断程序。

PIEACKx的作用和INTM的作用相同都是判断同组中有没有其他中断的产生。如PIEACKx判断INTx中其它8个有没有产生中断请求,INTM判断其它INTx 12个接口有没有产生中断请求。

PIE控制寄存器(PieCtrlRegs)

(1)PIE控制寄存器(PIECTRL)

 

(2)PIE中断应答寄存器(PIEACK) 

PieCtrlRegs.PIEACK.bit.ACK1=1;  // PIEACK1清0

PIE 将检查相应的 PIEACKx 以确定 CPU 是否准备响应该中断。如果相应的 PIEACKx 位清零,PIE 向 CPU 申请中断;如果 PIEACKx置 1,PIE 将等待到相应的 PIEACKx 清零才向 CPU 申请中断。PIE 通过对 PIEACKx的位控制来控制每 1 组中只有 1 个中断能被响应,一旦响应后,就需要将 PIEACKx相应位清零,以让它能够响应该组中后边过来的中断。

 (3)PIE中断标志寄存器(PIEIFRx),x=1-12

 (4)PIE中断使能寄存器(PIEIERx),x=1-12

 中断向量表

PieCtrlRegs.PIEIER1.bit.INTx4 = 1;  //使能PIE组1的INT4

CPU中断寄存器

(1)CPU中断标志寄存器(IFR)

 (2)CPU中断使能寄存器(IER)

 

IER |= M_INT1;  //使能CPU中断1(INT1),用或运算避免清除其他位

CPU 中断标志寄存器(IFR)是一个 16 位的 CPU 寄存器,包含 CPU 级可屏蔽中断(INT1-INT14、DLOGINT 和 RTOSINT)的使能位。IER 中既不包含 NMI 也不包含 XRS,这样 IER 不受这些中断的影响。

用户可以通过读 IER 来定义使能中断或设置中断的级别,也可以通过写 IER 来激活中断。利用 OR IER 指令将相应的 IER 位置 1 可以使能中断,利用 AND IER 指令将相应的 IER 位置 0 可以禁止一个中断。当一个中断被禁止,不管 INTM 位的值是多少,它都不会应答,当一个中断被使能,如果相应的 IFR 位为 1,且 INTM 位是 0,那么中断就被响应了。

GPIO中断寄存器(GpioIntRegs)

 (1)GPIO中断选择寄存器(GPIOXINTnSEL),n=1-7

GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12;  // XINT1是GPIO12

外部中断 

F28335共支持7个外部中断XINT1-XINT7,其中XINT1-XINT2只能对GPIO0-GPIO31配置;XINT3-XINT7只对GPIO32-GPIO63配置。XINT13还有一个不可屏蔽的外部中断XNMI共用中断源。每一个外部中断可以被选择为正边沿或负边沿触发,也可以被使能或者禁止(包括XNMI)。

外部中断寄存器(XIntruptRegs)

(1)外部中断控制寄存器(XINTnCR),n=1-7

XIntruptRegs.XINT1CR.bit.POLARITY = 0;  //下降沿触发中断
XIntruptRegs.XINT1CR.bit.ENABLE= 1;  //使能XINT1

其他

EINT;  //使能全局中断
DINT;  //禁止全局中断

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DSP28335中断采用了3中断机制,包括外设中断PIE中断和CPU中断。在DSP28335中,中断源分为片内中断源和片外中断源。片内中断源包括CPU定时器和各个外设,如eCAP、ePWM和看门狗等。片外中断源一般与DSP的引脚相连,当检测到一定的脉冲长度或电平转变时,会产生中断标志事件。然而,DSP28335只有有限的中断线可供使用,其中包括2条不可屏蔽中断线(NMI&RESET)和14条可屏蔽中断线(INT1-INT14)。因此,为了管理中断源,DSP28335提供了PIE中断来进行控制。外设要能够成功产生中断响应,需要经过外设中断允许、PIE允许和CPU响应的过程。虽然DSP28335有58个外设中断源,但实际可供使用的中断线只有12个,因此需要通过中断线的复用来管理中断源。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [DSP28335中断系统(一)](https://blog.csdn.net/qq_35874924/article/details/104473343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [DSP F28335中断系统](https://blog.csdn.net/u012616827/article/details/121941800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值