📄 main.c
字号:
/******************************************************************/
/*Copyright (C), 2008-2009, 力天电子,LiTian Tech.Co.Ltd. */
/* Module Name : XNMI */
/* File Name : main.c */
/* Author : 侯长波 */
/* Create Date : 2009/12/27 */
/* Version : 2.0 */
/* Function : */
/* Description : */
/* Support : www.LT430.com */
/******************************************************************/
/*****************头文件********************/
#include "DSP281x_Device.h"
#include "System.h"
/****************端口宏定义*****************/
#define S1 GpioDataRegs.GPEDAT.bit.GPIOE2
#define LED1_DIR GpioMuxRegs.GPBDIR.bit.GPIOB0
#define LED1_TOGGLE GpioDataRegs.GPBTOGGLE.bit.GPIOB0
#define LED1_DAT GpioDataRegs.GPBDAT.bit.GPIOB0
/****************常量宏定义*****************/
/***************全局变量定义****************/
/****************函数声明*******************/
void Manage_S1(void); //按键1处理程序
void Init_XNMI(void);
interrupt void KEY(void);
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:主函数 */
/*------------------------------------------*/
void main(void)
{
InitSysCtrl(); // 系统初始化子程序
Init_XNMI();
LED1_DAT=1;//发光二极管对应引脚初始化
EALLOW;
LED1_DIR=1;//发光二极管对应引脚输出
EDIS;
while(1);
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:按键S1的处理程序 */
/*------------------------------------------*/
void Manage_S1(void)
{
LED1_TOGGLE=1;//取反
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:XINT13中断设置 */
/*------------------------------------------*/
void Init_XNMI(void)
{
DINT; //关闭总中断
EALLOW;
GpioMuxRegs.GPEMUX.bit.XNMI_XINT13_GPIOE2 = 1; //引脚配置成XNMI
XIntruptRegs.XNMICR.bit.POLARITY=0;//下降沿产生中断
XIntruptRegs.XNMICR.bit.SELECT=0; //CPU_Timer1连接到XINT13
XIntruptRegs.XNMICR.bit.ENABLE=1; //使能非屏蔽中断NMI
PieVectTable.XNMI= &KEY; //中断服务程序入口地址放入中断向量表
EDIS;
EINT;
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:XNMI中断处理函数 */
/*------------------------------------------*/
interrupt void KEY(void)
{
unsigned int i;
DINT;//关闭总中断
for(i=0;i<2000;i++); //键盘消抖动
if(S1==0)
Manage_S1();
while(S1==0);//等待按键释放
EINT; //开总中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -