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);  //等待中断 
    }

  • 相关阅读:
    说说移动端web开发中的点击穿透问题
    将博客搬至CSDN
    IIS(4)
    IIS(2)
    IIS(3)
    IIS(1)
    链表
    常用到的关键字
    进程与线程
    文件系统的原理
  • 原文地址:https://www.cnblogs.com/luxiaolai/p/2863368.html
Copyright © 2011-2022 走看看