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

📄 dsp2812adc.c

📁 TMS320F2812的bootloader源程序
💻 C
字号:
//###########################################################################
//
// FILE:	DSP281x_Adc.c
//
// TITLE:	DSP281x ADC Initialization & Support Functions.
//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  1.00| 11 Sep 2003 | L.H. | Changes since previous version (v.58 Alpha)
//      |             |      | ADC_usDELAY changed from 5000L to 8000L
//###########################################################################

#include "DSP281x_Device.h"     // DSP281x Headerfile Include File


#define ADC_usDELAY  8000L
#define ADC_usDELAY2 20L

extern  void ADCINT_ISR(void) ;
//---------------------------------------------------------------------------
// InitAdc: 
//---------------------------------------------------------------------------
// This function initializes ADC to a known state.
//
void InitAdc(void)
{
	extern void DSP28x_usDelay(Uint32 Count);
	AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;	// Power up bandgap/reference circuitry
     asm(" RPT #10 || NOP ");
//	DSP28x_usDelay(ADC_usDELAY);                     // Delay before powering up rest of ADC
	AdcRegs.ADCTRL3.bit.ADCPWDN = 1;		// Power up rest of ADC
//	DSP28x_usDelay(ADC_usDELAY2);                 // Delay after powering up ADC
	//adc clk
	asm(" RPT #10 || NOP ");
	//////////ADCTRL3
	AdcRegs.ADCTRL3.bit.SMODE_SEL=0;//set seq
	
	/////////set ADCTRL1///////////////////
	AdcRegs.ADCTRL1.bit.ACQ_PS=0x03;
	AdcRegs.ADCTRL1.bit.CPS=0;
	AdcRegs.ADCTRL1.bit.CONT_RUN=1;
	AdcRegs.ADCTRL1.bit.SEQ_OVRD=1;
	AdcRegs.ADCTRL1.bit.SEQ_CASC=1;
	/////////set ADCTRL2///////////////////	
	AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=1;
	AdcRegs.ADCTRL2.bit.SOC_SEQ1=0;
	AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
	AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;
	/////////////////////
	//ADCMAXCONV
	AdcRegs.ADCMAXCONV.bit.MAX_CONV1=0x0f;//16ch
	
/////ADC input channel select register
	AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;
	AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x0;
	AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x0;
	AdcRegs.ADCCHSELSEQ1.bit.CONV03=0x0;	
	
	AdcRegs.ADCCHSELSEQ2.bit.CONV04=0x0;
	AdcRegs.ADCCHSELSEQ2.bit.CONV05=0x0;
	AdcRegs.ADCCHSELSEQ2.bit.CONV06=0x0;
	AdcRegs.ADCCHSELSEQ2.bit.CONV07=0x0;	
	
	AdcRegs.ADCCHSELSEQ3.bit.CONV08=0x0;
	AdcRegs.ADCCHSELSEQ3.bit.CONV09=0x0;
	AdcRegs.ADCCHSELSEQ3.bit.CONV10=0x0;
	AdcRegs.ADCCHSELSEQ3.bit.CONV11=0x0;	
	
	AdcRegs.ADCCHSELSEQ4.bit.CONV12=0x0;
	AdcRegs.ADCCHSELSEQ4.bit.CONV13=0x0;
	AdcRegs.ADCCHSELSEQ4.bit.CONV14=0x0;
	AdcRegs.ADCCHSELSEQ4.bit.CONV15=0x0;
	
	EALLOW;                             // Enable access to protected registers
    PieVectTable.ADCINT = &ADCINT_ISR;
    EDIS;                               // Disable access to protected registers
    PieCtrlRegs.PIEIER1.bit.INTx6 = 0;  // disable PIE INT1.6 = ADCINT
	
}	
//define channel control function
//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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