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

📄 cap.c

📁 DSP IO控制
💻 C
字号:
#include "DSP28_Device.h" 


interrupt void T4_ISR( void ) ;

Uint16 LoopCount ;
Uint16 ConversionCount ;
float Voltage1[10] ;
Uint16 Voltage2[10] ;

void delay_loop(void) ;

short aa;

short adclo;


main()
{
	InitSysCtrl() ;
	
	//EALLOW ;
	//SysCtrlRegs.HISPCP.all = 0x3 ;
	//EDIS ;
	//the three sentences up are inserted in the afternoon of 9.2
	//InitGpio() ;
	
	DINT ;
	IER = 0x0000 ;
	IFR = 0x0000 ;
	
	InitPieCtrl() ;
	
	InitPieVectTable() ;
	
	//InitAdc() ;
	
	EALLOW ;
	//PieVectTable.T1UFINT = &TI_ISR ;
	PieVectTable.T4UFINT = &T4_ISR ;
	EDIS ;
	
	//PieCtrl.PIEIER2.bit.INTx6 = 1 ;
	PieCtrl.PIEIER5.bit.INTx3 = 1 ;
	
	//IER |= M_INT2 ;
	IER |= M_INT5 ;
	
	EINT ;
	ERTM ;
	
	LoopCount = 0 ;
	ConversionCount = 0 ;
	aa=0;
	adclo=0;
	
//	AdcRegs.MAX_CONV.all = 0x0001 ;
//	AdcRegs.CHSELSEQ1.bit.CONV00 = 0x1 ;
//	AdcRegs.CHSELSEQ1.bit.CONV01 = 0x2 ;
//	AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1 ;
//	AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1 ;
	
	
	//EvaRegs.T1CMPR = 0x0080 ;
	EvbRegs.T4CMPR = 0x0080 ;
	//EvaRegs.T1PR = 0x00FF ;
	EvbRegs.T4PR = 0xFFFF ;
	//EvaRegs.EVAIFRA.bit.T1UFINT=0;
	EvbRegs.EVBIFRB.bit.T4UFINT = 1 ;
	//EvaRegs.EVAIMRA.bit.T1UFINT = 1 ;//这个是我加的,因为我发现例子程序没有使能计数器下溢中断位
	EvbRegs.EVBIMRB.bit.T4UFINT = 1 ;
//9.2_afternoom_modified	EvaRegs.GPTCONA.bit.T1TOADC = 1 ;//中断条件选择,1:下溢中断启动;2:周期中断启动;3:比较器中断启动
	//EvaRegs.T1CON.all = 0x1042 ;
	EvbRegs.T4CON.all = 0x1042 ;
	
	//GpioDataRegs.GPFDAT.all = 0x0000 ;
	delay_loop() ;
	

	
	while( 1 )
	{
	   LoopCount++;
	
	}
}


interrupt void T4_ISR( void ) 
{
	
	short counter_i ;
	IFR=0x0000;

	
	PieCtrl.PIEACK.all=0xffff;
	//EvaRegs.EVAIFRA.bit.T1UFINT=1;
	EvbRegs.EVBIFRB.bit.T4UFINT = 1 ;
	
	aa++;
		
	 GpioDataRegs.GPFTOGGLE.all = 0xFFFF;
  
  for( counter_i = 0 ; counter_i < 1000 ; counter_i ++ ) {}	
	


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

			AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;

		}

	//Voltage1[ ConversionCount ] =((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
	//AdcRegs.RESULT1 >> 4 ;
	//Voltage1[ 0 ] =((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
	Voltage1[ 0 ] =((float)AdcRegs.RESULT0)*3.0/65520+adclo;
	Voltage1[ 1 ] =((float)AdcRegs.RESULT1)*3.0/65520+adclo;
	Voltage1[ 3 ] =((float)AdcRegs.RESULT3)*3.0/65520+adclo;
	if( ConversionCount == 9 )
	{
		ConversionCount = 0 ;
	}
	else ConversionCount ++ ;
*/
////////////////////////////////////////////////////////////////////////////////
	
	//AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
	//AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
	EINT;
	
	
}
void delay_loop()
{
    short      i;
    for (i = 0; i < 1000; i++) {}
}

⌨️ 快捷键说明

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