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

转载于:https://www.cnblogs.com/luxiaolai/p/3755918.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值