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

📄 cputimer.c

📁 2812样例程序,开发环境为CCS3.1,本程序是关于CPU定时器基本使用方法的
💻 C
字号:
/************************************************************************************
	版权(c) 	2005-		清华大学精仪系			                *
*  	设计者:	韩丰田	
*************************************************************************************/
#include "DSP28_Device.h"

unsigned int Led_Flag=1;
volatile unsigned long *TINT0=(volatile unsigned long *)0x000D4C;

#define		LED1_ON		GpioDataRegs.GPFDAT.bit.GPIOF11=0
#define		LED1_OFF	GpioDataRegs.GPFDAT.bit.GPIOF11=1
#define		LED2_ON		GpioDataRegs.GPFDAT.bit.GPIOF10=0
#define		LED2_OFF	GpioDataRegs.GPFDAT.bit.GPIOF10=1

#define 	KEY1		GpioDataRegs.GPFDAT.bit.GPIOF8
#define 	KEY2		GpioDataRegs.GPFDAT.bit.GPIOF9

interrupt void ISRTimer0(void);

void main(void)
{
	unsigned long Timer0PRD1,Timer0PRD2,Timer0PRD,Timer0Old;
	unsigned long Timer0=100000;
	
	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	Led_Flag = 0;

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

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

	EALLOW;	
	//PieVectTable.TINT0 = &ISRTimer0;  //中断矢量的初始化方法1

	*TINT0 = (unsigned long)ISRTimer0;	//中断矢量的初始化方法2
	
	EDIS;   
    
	/*设置CPU定时器*/
	Timer0Old=100000;
	ConfigCpuTimer(&CpuTimer0, 150, Timer0Old);	
 	StartCpuTimer0();
   	
	PieCtrl.PIEIER1.all = 0x40;  //Enable CPU Timer0 interrupt
 	
	IER |= M_INT1;

	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM
	
	for(;;)  
	{
		Timer0PRD1=0;
		Timer0PRD2=0;
		Timer0PRD=0;
		if(KEY1) Timer0PRD1=Timer0*2;	
		if(KEY2) Timer0PRD2=Timer0*2;		
		Timer0PRD=Timer0+Timer0PRD1+Timer0PRD2;
		if (Timer0PRD!=Timer0Old) {
			Timer0Old=Timer0PRD;
			StopCpuTimer0();
			ConfigCpuTimer(&CpuTimer0, 150, Timer0PRD);
			StartCpuTimer0();
			}
		}

} 	

interrupt void ISRTimer0(void)
{
	PieCtrl.PIEACK.all |= PIEACK_GROUP1;

	if(Led_Flag == 1)
	{
		LED1_ON;
		LED2_ON;
		Led_Flag = 0;
	}
	else
	{
		LED1_OFF;
		LED2_OFF;
		Led_Flag = 1;
	}
}



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

⌨️ 快捷键说明

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