led_1.c

来自「dsp2812的源程序」· C语言 代码 · 共 105 行

C
105
字号
/************************************************************************************
	版权(c) 	2003-		北京合众达电子技术有限责任公司			                *
*  	设计者:	戴展波	
*************************************************************************************/
#include "DSP28_Device.h"
#include "ext_inf.h"
unsigned int Led_Flag, count, count1;

interrupt void ISRTimer2(void);

void main(void)
{
int i;

	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	
	count = 0;
	Led_Flag = 0;
	
	EALLOW;
	GpioMuxRegs.GPAMUX.all = 0x0000;
	GpioMuxRegs.GPADIR.all = 0x00ff;
	EDIS;
	
	

	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	
	/*初始化外设*/
    InitPeripherals();
    

	EALLOW;	
	PieVectTable.TINT2 = &ISRTimer2;
	EDIS;   
    
	/*设置CPU*/
	ConfigCpuTimer(&CpuTimer2, 150, 200);	
 	StartCpuTimer2();

    /*开中断*/
	IER |= M_INT14;

	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM

	while(1)
	  {
	  count1 = 30;
	  
	  for(i = 0; i < 50;)
	  	{
	    if(count == 50)
	      {
	      count = 0;
	      
	      if(!(count1--))
	      	{
	      	count1 = 3;
	        i++;
	        }
	        
	      GpioDataRegs.GPADAT.all = 0x000f;
	      }
	  
	    if(count == i)
	      GpioDataRegs.GPADAT.all = 0x00f0;
	    } 
	  }   
} 	

interrupt void ISRTimer2(void)
{
	CpuTimer2.InterruptCount++;
	
	count++;
	
	if(Led_Flag == 1)
	{
		*LED2 = 0;
		LED1_ON;
		Led_Flag = 0;
	}
	else
	{
		*LED2 = 1;
		LED1_OFF;
		Led_Flag = 1;
	}
}

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?