⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.c

📁 ICETEK-F2812-A评估板所附带的源程序.rar
💻 C
字号:
#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

// Prototype statements for functions found within this file.
interrupt void cpu_timer0_isr(void);

#define LEDS *(int *)0xc0000
#define CTRGR *(int *)0x108000
#define CTRLCDCMDR *(int *)0x108001
#define CTRKEY *(int *)0x108001
#define CTRLCDCR *(int *)0x108002
#define CTRCLKEY *(int *)0x108002
#define CTRLCDLCR  *(int *)0x108003
#define CTRLCDRCR *(int *)0x108004
#define CTRLA *(int *)0x108005
#define CTRLR *(int *)0x108007

int i=0,nCount;
unsigned int uLBD;

void main(void)
{   
	
	unsigned int uPort8000;

   InitSysCtrl();//初始化cpu

   DINT;//关中断

   InitPieCtrl();//初始化pie寄存器
   

   IER = 0x0000;//禁止所有的中断
   IFR = 0x0000;


   InitPieVectTable();//初始化pie中断向量表


   EALLOW;  // This is needed to write to EALLOW protected registers
   PieVectTable.TINT0 = &cpu_timer0_isr;//指定中断服务子程序
   EDIS;    // This is needed to disable write to EALLOW protected registers

   	CpuTimer0.RegsAddr = &CpuTimer0Regs;
	// Initialize timer period to maximum:	
	CpuTimer0Regs.PRD.all  = 0xffff;
	// Initialize pre-scale counter to divide by 1 (SYSCLKOUT):	
	CpuTimer0Regs.TPR.all  = 0;
	CpuTimer0Regs.TIM.all  = 0;
	CpuTimer0Regs.TPRH.all = 0;
	// Make sure timer is stopped:
	CpuTimer0Regs.TCR.bit.TSS = 1;
	CpuTimer0Regs.TCR.bit.SOFT = 1;
	CpuTimer0Regs.TCR.bit.FREE = 1;
	// Reload all counter register with period value:
	CpuTimer0Regs.TCR.bit.TRB = 1;
	CpuTimer0Regs.TCR.bit.TIE = 1;
	// Reset interrupt counters:
	CpuTimer0.InterruptCount = 0;	         


   StartCpuTimer0();//启动定时器0

// Enable CPU INT1 which is connected to CPU-Timer 0:
   IER |= M_INT1;

// Enable TINT0 in the PIE: Group 1 interrupt 7
   PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

// Enable global Interrupts and higher priority real-time debug events:
   EINT;   // Enable Global interrupt INTM
   ERTM;   // Enable Global realtime interrupt DBGM
   CTRGR=0;		// 初始化ICETEK-CTR
   CTRGR=0x80;
   CTRGR=0;
   CTRLR=0;			// 关闭东西方向的交通灯
   CTRLR=0x40;	// 关闭南北方向的交通灯
  uPort8000=CTRCLKEY;
   
     while ( 1 )
	{
		
	}

} 


interrupt void cpu_timer0_isr(void)
{ int j,k; 
   //CpuTimer0.InterruptCount++;

   // Acknowledge this interrupt to receive more interrupts from group 1
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
   CpuTimer0Regs.TCR.bit.TIF = 1;
   CpuTimer0Regs.TCR.bit.TRB = 1;
   if ( nCount==0 )
   {
		LEDS=uLBD;
		uLBD++; uLBD%=16;
   }
   nCount++; nCount%=194;

}


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

⌨️ 快捷键说明

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