0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DSP28335外部中断的使用

冬至配饺子 来源:电机人生 作者:电机人生 2023-07-07 16:41 次阅读

一、概述

处理器的外部中断主要用于捕抓外部输入的高低电平。本篇文章将介绍DSP28335的外部中断的使用。

二、DSP28335外部中断介绍

DSP28335处理器共支持7个外部中断XINT1XINT7,其中XINT1XINT2只能对GPIO0GPIO31配置;XINT3XINT7只对GPIO32~GPIO63配置。每一个外部中断可以被选择为正边沿或负边沿触发。DSP28335的中断系统框图为:

图片

图1 DSP中断系统

DSP28335中断分为三级,分别为:外设级、PIE级、CPU级。如下图所示:

图片

图2 DSP28335的三级中断机制

DSP28335的三级中断机制可以这样理解(以外部中断为例):外设级为像外部引脚输入高低电平时,同时外设级的中断使能了,这时候外设级会产生一个中断标志位,PIE级检测到该中断标志位,同时PIE自己的中断使能了,这时候PIE会产生一个中断标志位,PIE的中断标志位给CPU,当CPU的中断使能位打开了,就会响应这个中断。总的概况:一个外部中断要得到CPU响应,要越过外设级中断使能、PIE中断使能、CPU中断使能。

图片

图3 DSP28335中断过程

从图3可以看出,只有一道一道开关闭合,才能把中断送到CPU,让CPU去响应中断。

三、外部中断涉及相关寄存器

1. 外部中断控制寄存器---XINTnCR【外设级】

图片

图4 外部中断控制寄存器---XINTnCR

外部中断控制寄存器用于控制上升沿触发还是下降沿触发,中断使能。

2. PIE这一级的寄存器【PIE级】

(1)PIE中断使能寄存器----PIEIERx[x=1~12]

图片

图5 PIE中断使能寄存器

(2)PIE中断标志寄存器----PIEIFRx[x=1~12]

图片

图6 PIE中断标志寄存器

(3)PIE中断应答寄存器----PIACK

图片

图6 PIE中断应答寄存器

3.CPU这一级寄存器【CPU级】

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

图片

图7 CPU中断标志寄存器

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

图片

图8 CPU中断使能寄存器

四、DSP28335外部中断实现

DSP28335外部中断实现主要有以下步骤:

(1)失能CPU级中断,并初始化PIE控制器和PIE中断向量表;

(2)使能IO口时钟,配置IO口为输入;

(3)设置IO口与中断线的映射关系;

图片

图9 中断映射表

本次使用的是GPIO17,映射到XINT1,即INT1.4

(4)指定中断向量表中断服务函数地址;

(5)使能外设对应的PIE中断**[PIE级使能];**

(6)设置外部中断触发方式并使能中断**[外设级使能];**

(7)使能CPU级中断及全局中断**[CPU级使能];**

(8)编写外部中断服务函数。

编程实现:

//外部中断配置步骤
//1。失能CPU级中断,并初始化PIE控制器寄存器和PIE中断向量表
//2.使能IO时钟,配置IO口为输入
//3.设置IO口与中断线的映射关系
//4.指定中断向量表中断服务函数地址
//5.使能外设对应的PIE中断
//6.设置外部中断触发中断触发方式并使能中断
//7.使能CPU级中断及全局中断
void EXTI_Init(void)
{

// 步骤 1. 失能CPU级中断,并初始化PIE控制器寄存器和PIE中断向量表

DINT; // 禁止CPU全局中断
  InitPieCtrl();
  IER = 0x0000;    // 禁止CPU中断和清除所有CPU中断标志
  IFR = 0x0000;
  InitPieVectTable();      //初始化PIE中断向量表,并使其指向中断服务子程序(ISR)

//步骤 2.使能IO时钟,配置IO口为输入
EALLOW;//关闭写保护

SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    //开启GPIO时钟


  GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0;     //配置为通用IO口
  GpioCtrlRegs.GPADIR.bit.GPIO17 = 0;     //配置为输入
  GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0;     //配置为上拉
  EDIS;//打开写保护




 //步骤3:设置IO口与中断线的映射关系
  EALLOW;
  GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 17;//XINT1 对应 GPIO17脚(GPIO0-31配置XINT1、2;GPIO32-63配置XINT3~7)
  EDIS;

//步骤 4. 指定中断向量表中断服务函数地址
EALLOW;
PieVectTable.XINT1 = &EXTI_IRQ;
EDIS;

//步骤 5.使能外设对应的PIE中断
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;//使能PIE 1 组 4通道 (这里需要查询PIE的中断矢量表 来确定使能的位)

//6.设置外部中断触发中断触发方式并使能中断
XIntruptRegs.XINT1CR.bit.POLARITY = 0;//下降沿触发有效
XIntruptRegs.XINT1CR.bit.ENABLE = 1;//使能外部中断

//步骤 7. 使能CPU级中断及全局中断
IER |= M_INT1;//使能INT1中断通道 (对应的变量值在 DSP2833x_Device.h中已进行宏定义。要用|或符号赋值,防止改变其他位)

EINT;//打开全局中断
  ERTM;//当使用仿真器调试时 开启DEBUG中断

}

int CNT=0;
//步骤 8. 编写中断函数,在中断函数结束前写1清零PIEACK对应位
interrupt void EXTI_IRQ(void)
{
GpioDataRegs.GPCTOGGLE.bit.GPIO75 = 1;
CNT = CNT+1;
// DELAY_US(5000);//延时

PieCtrlRegs.PIEACK.bit.ACK1 = 1;//写1清零PIEACK对应位

}

主函数为:

void main(void)
{

InitSysCtrl();


GIOP_Init();
EXTI_Init();


while(1)
{

// GpioDataRegs.GPCSET.bit.GPIO75 = 1;
}

}

通过上面的程序就能使用按键使得一个LED灯翻转。

*五、总结

本篇文章介绍了DSP28335的外部中断的使用,使用一个按键作为外部输入,触发LED灯进行翻转。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222164
  • led灯
    +关注

    关注

    22

    文章

    1554

    浏览量

    107031
  • GPIO
    +关注

    关注

    16

    文章

    1133

    浏览量

    50573
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15596
  • DSP28335
    +关注

    关注

    22

    文章

    57

    浏览量

    40184
收藏 人收藏

    评论

    相关推荐

    Dsp28335中断的方

    本帖最后由 mr.pengyongche 于 2013-4-30 02:59 编辑 Dsp28335中断的方
    发表于 01-06 13:24

    DSP28335外部中断求助

    ` 本帖最后由 mr.pengyongche 于 2013-4-30 02:54 编辑 我想用GPIO15来控`
    发表于 03-30 07:57

    DSP28335的应用是什么

    近日工作中又涉及到了DSP28335的应用,看来TI的芯片还是得到了公司领导的认可,也直接丢了一份DSP28335的FOC程序给我理解。以前读书阶段较为简单的接触过一段时间,对DSP28335
    发表于 02-16 06:54

    基于DSP28335的电能质量监测仪器设计

    基于DSP28335的电能质量监测仪器设计
    发表于 11-02 11:22 50次下载

    Dsp28335中断的方法

    Dsp28335中断的方法Dsp28335中断的方法
    发表于 01-08 14:17 14次下载

    基于DSP28335的三电平SVPWM算法研究

    基于DSP28335的三电平SVPWM算法研究
    发表于 04-15 18:29 46次下载

    DSP28335中文手册

    TI公司 DSP28335中文资料数据手册
    发表于 05-19 11:17 152次下载

    DSP28335研发笔记_ccs5.2

    DSP28335研发笔记
    发表于 12-30 15:04 20次下载

    基于DSP28335的七相感应电机矢量控制_郭冀岭

    基于DSP28335的七相感应电机矢量控制_郭冀岭
    发表于 01-08 10:57 8次下载

    DSP28335串口通信(SCI)的理论,介绍和应用

    DSP28335串口通信(SCI)的理论,介绍和应用
    发表于 09-04 09:28 37次下载
    <b class='flag-5'>DSP28335</b>串口通信(SCI)的理论,介绍和应用

    基于DSP28335串口通信(SCI)的理论,介绍和应用

    基于DSP28335串口通信(SCI)的理论,介绍和应用
    发表于 09-04 14:07 28次下载
    基于<b class='flag-5'>DSP28335</b>串口通信(SCI)的理论,介绍和应用

    dsp28335如何入门:程序设计步骤

    本文首先介绍了dsp28335的概念,其次介绍了dsp28335电气特性及特点,最后详细阐述了关于dsp28335的程序设计步骤。
    发表于 05-23 17:09 1.9w次阅读

    dsp28335开发板中文资料汇总(dsp28335最小系统_引脚图_封装_初始化程序)

    本文主要介绍了dsp28335开发板最小应用系统设计、dsp28335引脚图功能和dsp28335封装及dsp28335初始化程序。
    发表于 05-24 17:25 6.1w次阅读
    <b class='flag-5'>dsp28335</b>开发板中文资料汇总(<b class='flag-5'>dsp28335</b>最小系统_引脚图_封装_初始化程序)

    使用DSP28335控制电机的资料合集免费下载

    本文档的主要内容详细介绍的是使用DSP28335控制电机的资料合集免费下载包括了:电机控制原理图,硬件手册,H桥直流电刷电机控制,DSP28335使用程序,DSP28335电机控制开发板测试步骤,
    发表于 05-18 08:00 141次下载
    使用<b class='flag-5'>DSP28335</b>控制电机的资料合集免费下载

    研旭DSP28335实用版-硬件测评

    电子发烧友网站提供《研旭DSP28335实用版-硬件测评.pdf》资料免费下载
    发表于 10-09 15:19 2次下载
    研旭<b class='flag-5'>DSP28335</b>实用版-硬件测评