首页 > 代码库 > 28335外部中断

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);
}