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

📄 dsp28_adc.c

📁 微机通过串口通信精确控制pwm频率和脉宽。
💻 C
字号:
//
//      TMDX ALPHA RELEASE
//      Intended for product evaluation purposes
//
//###########################################################################
//
// FILE:	DSP28_Adc.c
//
// TITLE:	DSP28 ADC Initialization & Support Functions.
//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  0.55| 06 May 2002 | L.H. | EzDSP Alpha Release
//  0.56| 20 May 2002 | L.H. | No change
//  0.57| 27 May 2002 | L.H. | No change
//###########################################################################

#include "DSP28_Device.h"

//---------------------------------------------------------------------------
// InitAdc: 
//---------------------------------------------------------------------------
// This function initializes ADC to a known state.
//
void InitAdc(void)
{       double k;
    
/*** Reset the ADC module ***/
   	AdcRegs.ADCTRL1.bit.RESET = 1;		// Reset the ADC module
	asm(" RPT #12 || NOP");				// Must wait 12-cycles (worst-case) for ADC reset to take effect

/*** Must follow the proper ADC power-up sequence ***/
	AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;	// Power up bandgap/reference circuitry
	for(k=0;k<2000;k++)
    {asm(" NOP");}	                 // Delay before powering up rest of ADC
	AdcRegs.ADCTRL3.bit.ADCPWDN = 1;		// Power up rest of ADC
//	DelayUs(20);						// Wait 20us before using the ADC
    for(k=0;k<4000;k++)
    {asm(" NOP");}	

//设置adc的时钟
   AdcRegs.ADCTRL1.bit.ACQ_PS = 1; //采样保持脉冲个数,即SH为1+1=2个ADCCLK
   AdcRegs.ADCTRL1.bit.CPS=0; //预定标器
   AdcRegs.ADCTRL3.bit.ADCCLKPS =3; //  HSPCLK/[6*(ADCTRL1[7]+1)]HSPCLK为150MHz,而adc工作频率小于等于25MHz.
//  设置adc的各寄存器 
   AdcRegs.ADCTRL3.bit.SMODE_SEL =0; //设置序列采样模式
   AdcRegs.MAX_CONV.all = 0x0001;       // 定义了一次转换中,完成的最大转换数为1+1=2;
   AdcRegs.CHSELSEQ1.bit.CONV00 = 0x0; // 把 ADCINA0 设置为 SEQ1 的adc的第一条转换通道.result0存放转换结果
   AdcRegs.CHSELSEQ1.bit.CONV01 = 0x1; // 把 ADCINA1 设置为SEQ1 的第二条adc转换输入通道.result1存放转换结果
   AdcRegs.ADCTRL1.bit.CONT_RUN = 0;//START-STOP MODE
   AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1;  // 允许EVA触发启动SEQ1,可对事件管理器编程,以便在各种事件中启动下一个转换。
   AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;  // SEQ1中断请求使能。本位使能INT_FLAG_SEQ1向CPU SEQ1的中断请求


}	


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

⌨️ 快捷键说明

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