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

📄 复件 cputimer.c

📁 详细的说明了DSP调试内容
💻 C
字号:
#include "DSP28_Device.h"
#include "ext_inf.h"
unsigned int Led_Flag;

float	a1[16];
unsigned int a2=0,a3=0;
float	adclo=0.0;

interrupt void ad(void);

interrupt void ISRTimer0(void);

void InitAdc(void);

void main(void)
{

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

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

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

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	
	/*初始化外设*/
    InitPeripherals();
    PieCtrl.PIEIER1.bit.INTx7=1;
	PieCtrl.PIEIER1.bit.INTx6=1;

	EALLOW;	
	PieVectTable.TINT0 = &ISRTimer0;
	PieVectTable.ADCINT=&ad;
	EDIS;  
	
	InitAdc(); 
    
	/*设置CPU*/
	ConfigCpuTimer(&CpuTimer0, 150, 100000);	
 	StartCpuTimer0();

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

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

	while(AdcRegs.ADC_ST_FLAG.bit.SEQ1_BSY==0)
	{			

		AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;

	}

	
	for(;;);
	

} 	

interrupt void ISRTimer0(void)
{
	CpuTimer0.InterruptCount++;
	a3++;
	if(Led_Flag == 1)
	{
		*LED2 = 0;
		LED1_ON;
		Led_Flag = 0;
	}
	else
	{
		*LED2 = 1;
		LED1_OFF;
		Led_Flag = 1;
	}
	
	PieCtrl.PIEACK.bit.ACK1 = 1;
	EINT;
}


interrupt void ad(void)
{
	IFR=0x0000;
//	PieCtrl.PIEIFR1.all = 0;
	PieCtrl.PIEACK.all=0xffff;
	a2++;
	
	a1[0]=((float)AdcRegs.RESULT0);
	a1[1]=((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
	a1[2]=((float)AdcRegs.RESULT2)*3.0/65520.0+adclo;
	a1[3]=((float)AdcRegs.RESULT3)*3.0/65520.0+adclo;
	a1[4]=((float)AdcRegs.RESULT4)*3.0/65520.0+adclo;
	a1[5]=((float)AdcRegs.RESULT5)*3.0/65520.0+adclo;
	a1[6]=((float)AdcRegs.RESULT6)*3.0/65520.0+adclo;
	a1[7]=((float)AdcRegs.RESULT7)*3.0/65520.0+adclo;
	a1[8]=((float)AdcRegs.RESULT8)*3.0/65520.0+adclo;
	a1[9]=((float)AdcRegs.RESULT9)*3.0/65520.0+adclo;
	a1[10]=((float)AdcRegs.RESULT10)*3.0/65520.0+adclo;
	a1[11]=((float)AdcRegs.RESULT11)*3.0/65520.0+adclo;
	a1[12]=((float)AdcRegs.RESULT12)*3.0/65520.0+adclo;
	a1[13]=((float)AdcRegs.RESULT13)*3.0/65520.0+adclo;
	a1[14]=((float)AdcRegs.RESULT14)*3.0/65520.0+adclo;
	a1[15]=((float)AdcRegs.RESULT15)*3.0/65520.0+adclo;
	AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
	AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
	EINT;
	
}


void InitAdc(void)
{
	unsigned int i;
	
	
	AdcRegs.ADCTRL1.bit.RESET=1;
	NOP;
	AdcRegs.ADCTRL1.bit.RESET=0;
	AdcRegs.ADCTRL1.bit.SUSMOD=3;
	AdcRegs.ADCTRL1.bit.ACQ_PS=0;
	AdcRegs.ADCTRL1.bit.CPS=0;
	AdcRegs.ADCTRL1.bit.CONT_RUN=0;
	AdcRegs.ADCTRL1.bit.SEQ_CASC=1;
	
	AdcRegs.ADCTRL3.bit.ADCBGRFDN=3;
	for(i=0;i<10000;i++)	NOP;
	AdcRegs.ADCTRL3.bit.ADCPWDN=1;
	for(i=0;i<5000;i++)	NOP;
	AdcRegs.ADCTRL3.bit.ADCCLKPS=15;
	AdcRegs.ADCTRL3.bit.SMODE_SEL=1;
	
	AdcRegs.MAX_CONV.bit.MAX_CONV=15;
	
	AdcRegs.CHSELSEQ1.bit.CONV00=0;
	AdcRegs.CHSELSEQ1.bit.CONV01=1;
	AdcRegs.CHSELSEQ1.bit.CONV02=2;
	AdcRegs.CHSELSEQ1.bit.CONV03=3;
	
	AdcRegs.CHSELSEQ2.bit.CONV04=4;
	AdcRegs.CHSELSEQ2.bit.CONV05=5;
	AdcRegs.CHSELSEQ2.bit.CONV06=6;
	AdcRegs.CHSELSEQ2.bit.CONV07=7;
	
	AdcRegs.CHSELSEQ3.bit.CONV08=8;
	AdcRegs.CHSELSEQ3.bit.CONV09=9;
	AdcRegs.CHSELSEQ3.bit.CONV10=10;
	AdcRegs.CHSELSEQ3.bit.CONV11=11;
	
	AdcRegs.CHSELSEQ4.bit.CONV12=12;
	AdcRegs.CHSELSEQ4.bit.CONV13=13;
	AdcRegs.CHSELSEQ4.bit.CONV14=14;
	AdcRegs.CHSELSEQ4.bit.CONV15=15;
	
	AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
	AdcRegs.ADC_ST_FLAG.bit.INT_SEQ2_CLR=1;	
	
	AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0;
	AdcRegs.ADCTRL2.bit.RST_SEQ1=0;
	AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
	AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;
	AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=0;
	AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0;
	AdcRegs.ADCTRL2.bit.RST_SEQ2=0;
	AdcRegs.ADCTRL2.bit.SOC_SEQ2=0;
	AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0;
	AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2=0;
	AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=0;
	AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
	
	
	
	
}	

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

⌨️ 快捷键说明

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