zoukankan      html  css  js  c++  java
  • 2808外部中断

    #include "DSP280x_Device.h"
    #include "DSP280x_Examples.h"
    void delay(void)
    {
     int i,j;
     for(i=0;i<2550;i++)
      for(j=0;j<100;j++);
    }
    //外部中断服务程序
    interrupt void xint1(void)
    {
     PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;//清除中断标志位响应其它中断
     if(!GpioDataRegs.GPADAT.bit.GPIO26)
     {
      delay();
      if(!GpioDataRegs.GPADAT.bit.GPIO26)
      {
       GpioDataRegs.GPATOGGLE.all=0xffff; //将GPIO的状态反转
      }
     } 
     
    }
    //外部中断初始化程序
    void init_xint1(void)
    {
     InitSysCtrl();//初始化时钟等系统资源
     DINT;//关闭CPU中断
     InitPieCtrl();//初始化中断向量表
     IER=0x0000;//清除CPU中断
     IFR=0x0000;//清除CPU中断标志位
     InitPieVectTable();//初始化中断向量表
     EALLOW; //寄存器保护
        PieVectTable.XINT1 = &xint1;//设置外部中断1的中断向量地址
        EDIS; // 取消寄存器保护
     PieCtrlRegs.PIECTRL.bit.ENPIE = 1;          // 启动PIE模块
        PieCtrlRegs.PIEIER1.bit.INTx4 = 1;          // 启动PIE模块1
       IER |= M_INT1;                              // 开CPU中断1区
       EINT;          //启动全局中断
     EALLOW;//寄存器保护
     GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 0;   //设定GPIO 
     GpioCtrlRegs.GPADIR.bit.GPIO26 = 0;   //将GPIO1设定为输入
     GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 26;   // 0代表将外部中断的输入设定为GPIO0
     XIntruptRegs.XINT1CR.bit.POLARITY = 0;      // 外部中断1采用下降沿中断
     XIntruptRegs.XINT1CR.bit.ENABLE = 1;        // 启动外部中断
    }
    //显示用GPIO初始化
    void init_gpio(void)
    {
     EALLOW;  //寄存器保护
     GpioCtrlRegs.GPAMUX1.all=0x0000;  //设定为GPIO
     GpioCtrlRegs.GPADIR.all=0xffff;   //设定GPIO为输出
     EDIS;  //取消寄存器保护
    }
    void main(void)
    {
     init_xint1();
     init_gpio();
     GpioDataRegs.GPASET.all=0xffff;  //将GPIO置位
     while(1);  //等待中断 
    }

  • 相关阅读:
    R 语言中的数据结构
    minimap2 长reads比对工具
    seqtk 一款快速处理fasta/fastq 文件的小程序
    Eclipse R语言开发环境搭建 StatET插件
    Windows 安装R
    HttpClient 发送请求和参数
    Java Base64编码和解码
    docker 安装
    docker
    inotify 监控文件系统操作
  • 原文地址:https://www.cnblogs.com/luxiaolai/p/2863368.html
Copyright © 2011-2022 走看看