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

    /*****************************************************************************
    Copyright: 2014,Tkai
    File name: main.c
    Description:28335外部中断测试
    Author:
    Version: v1.0
    Date: 2014.05.27
    History: 无
    *****************************************************************************/
    #include "DSP2833x_Device.h"
    #include "DSP2833x_Examples.h"

    /*************************************************
    Function: gpio_init()
    Description: IO的初始化
    Calls: NO
    Called By: main()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: NULL
    Return: void
    Others: NO
    *************************************************/
    void gpio_init(void)
    {
     EALLOW;
     GpioCtrlRegs.GPAMUX1.all=0x0000;//IO做为GPIO
     GpioCtrlRegs.GPADIR.all=0xffff;//GPIO输出使能
     EDIS;
    }

    /*************************************************
    Function: Ext_isr()
    Description: 外部中断服务程序
    Calls: NO
    Called By: Ext_init()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: NULL
    Return: void
    Others: NO
    *************************************************/
    interrupt void Ext_isr(void)
    {
     GpioDataRegs.GPATOGGLE.all=0xffff;//IO状态转换
     PieCtrlRegs.PIEACK.all=0xffff;//开所有中断
     
    }
    /*************************************************
    Function: Ext_init()
    Description: 外部中断的初始化
    Calls: NO
    Called By: main()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: NULL
    Return: void
    Others: NO
    *************************************************/
    void Ext_init(void)
    {
     InitSysCtrl();
     InitPieVectTable();
     InitPieCtrl();
     EALLOW;
     GpioCtrlRegs.GPAMUX1.bit.GPIO15=0; //IO15设为GPIO
     GpioCtrlRegs.GPADIR.bit.GPIO15=0;  //GPIO15设为输入
     GpioCtrlRegs.GPAPUD.bit.GPIO15=1;  //GPIO15内部上拉
     PieVectTable.XINT1=&Ext_isr;       //中断服务程序指定 
     GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL=15;//GPIO15设为外部中断
     XIntruptRegs.XINT1CR.bit.ENABLE=1;  //INT1打开
     XIntruptRegs.XINT1CR.bit.POLARITY=1;//下降沿有效
     EDIS;
     DINT;
     IER=0x0000;
     IFR=0x0000;
     PieCtrlRegs.PIEIER1.bit.INTx4=1;  //INTx4 外部中断号
     PieCtrlRegs.PIECTRL.bit.ENPIE=1;  //打开中断
     IER=M_INT1;     //打开中断
     EINT;
     
    }
    /*************************************************
    Function: main()
    Description: 主函数
    Calls: gpio_init(),Ext_init()
    Called By: NO
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: NULL
    Return: void
    Others: NO
    *************************************************/
    void main(void)
    {
     gpio_init();
     Ext_init();
     GpioDataRegs.GPADAT.all=0x0000;
     while(1);
    }

  • 相关阅读:
    调用父类和子类的__init__方法
    对git、github、gitee、gitlab的理解
    网鼎杯2020白虎组部分WriteUp
    比代码更难的事!看完这些思维习惯的人,都成为了架构师
    分布式数字身份DID调研
    如何优雅的实现分布式锁
    __init__构造函数
    付款明细数据
    总账凭证数据
    固定资产
  • 原文地址:https://www.cnblogs.com/luxiaolai/p/3755918.html
Copyright © 2011-2022 走看看