📄 main.c
字号:
/******************************************************************/
/*Copyright (C), 2008-2009, 力天电子,LiTian Tech.Co.Ltd. */
/* Module Name : */
/* 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 LED_DIR GpioMuxRegs.GPBDIR.all
#define LED_DAT GpioDataRegs.GPBDAT.all
/****************常量宏定义*****************/
/***************全局变量定义****************/
unsigned int temp; //指示发光二极管的显示状态
/****************函数声明*******************/
void Init_LED(void);
void Init_Timer1(void);
interrupt void Timer1_INT(void);
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:主函数 */
/*------------------------------------------*/
void main(void)
{
InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中
Init_LED(); //设置发光二极管端口输出
Init_Timer1();
temp=0x0001;
while(1);
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:初始化发光二极管端口为输出 */
/*------------------------------------------*/
void Init_LED(void)
{
EALLOW;
LED_DIR |= 0x00FF;
EDIS;
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:初始化Timer0 */
/*------------------------------------------*/
void Init_Timer1(void)
{
CpuTimer1Regs.PRD.all = 120000000;//设置定时器周期
CpuTimer1Regs.TPR.all = 0;
CpuTimer1Regs.TPRH.all = 0;
CpuTimer1Regs.TCR.bit.TSS = 1;//停止定时器
CpuTimer1Regs.TCR.bit.TIE = 1;//使能定时器0中断
DINT; // 关闭总中断
EALLOW; // 解除寄存器保护
XIntruptRegs.XNMICR.bit.SELECT=0; //Timer1连接到XINT13
XIntruptRegs.XNMICR.bit.ENABLE=0; //禁止非屏蔽中断NMI
PieVectTable.XINT13 = &Timer1_INT;//用Timer1中断函数入口更新PIE向量表
EDIS; // 使能寄存器保护
IER|= M_INT13;//使能M_INT13中断
EINT; // 全局中断使能INTM
CpuTimer1Regs.TCR.bit.TRB = 1;//定时器重装
CpuTimer1Regs.TCR.bit.TSS = 0;//启动定时器
}
/*------------------------------------------*/
/*形式参数:void */
/*返回值:void */
/*函数描述:Timer0中断处理函数 */
/*------------------------------------------*/
interrupt void Timer1_INT(void)
{
DINT;//关闭总中断
CpuTimer1Regs.TCR.bit.TSS = 1;//停止定时器
CpuTimer1Regs.TCR.bit.TIF = 1;//清零中断标志位
if(temp==0x0100)
temp=0x0001;
LED_DAT=(LED_DAT|0x00FF)&(~temp);
temp<<=1;
CpuTimer1Regs.TCR.bit.TRB = 1;//定时器重装
CpuTimer1Regs.TCR.bit.TSS = 0;//启动定时器
EINT; //开总中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -