/*
 * adctrl.c
 *
 *  Created on: 2019-1-21
 *      Author: w
 */
#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "adctrl.h"

Uint16   run_flag;///运行状态
Uint16   adc_wait,ADstatus,ad_time_end;
//Uint16   ad_data[16];

void readdata(void);
////////
void  adconvert()
{
	while(AdcRegs.ADCST.bit.INT_SEQ1 == 0)///等待ad转换完成
	{
		if(adc_wait >= 65535)
			adc_wait = 0;
		adc_wait ++;
		////需要增加CPU中断计数，防止ADC意外陷入死循环
		if(adc_wait > 5000)
		{
			ADstatus = 100;///AD status 100 error
			break;
		}
	}
	adc_wait = 0;//清零
	ad_time_end = EvaRegs.T1CNT;
	if(run_flag == 0)
		ad_zero_filter();////AD滤波
	else
	{
		;////确定绿波后的零点值   二次启动
//		InitAdc_2nd();///init 2nd ad channel
//		EvaRegs.GPTCONA.bit.T1TOADC = 1;////下溢中断启动AD转换
		AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;////reset seq1
		AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;///软件中断启动AD转换
		while(AdcRegs.ADCST.bit.INT_SEQ1 == 0)///等待ad转换完成
		{
			if(adc_wait >= 65535)
				adc_wait = 0;
			adc_wait ++;
			////需要增加CPU中断计数，防止ADC意外陷入死循环
			if(adc_wait > 5000)
			{
				ADstatus = 100;///AD status 100 error
				break;
			}
		}
		adc_wait = 0;//清零
		AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 0;///软件中断启动AD转换
	}



}
void  ad_zero_filter()
{
	;

}
void readdata(void)
{
//	ad_data[0] =   AdcRegs.ADCRESULT0 >>4;
//	ad_data[1] =   AdcRegs.ADCRESULT1 >>4;
//	ad_data[2] =   AdcRegs.ADCRESULT2 >>4;
//	ad_data[3] =   AdcRegs.ADCRESULT3 >>4;
//	ad_data[4] =   AdcRegs.ADCRESULT4 >>4;
//	ad_data[5] =   AdcRegs.ADCRESULT5 >>4;
//	ad_data[6] =   AdcRegs.ADCRESULT6 >>4;
//	ad_data[7] =   AdcRegs.ADCRESULT7 >>4;
//	ad_data[8] =   AdcRegs.ADCRESULT8 >>4;
//	ad_data[9] =   AdcRegs.ADCRESULT9 >>4;
//	ad_data[10] = AdcRegs.ADCRESULT10 >>4;
//	ad_data[11] = AdcRegs.ADCRESULT11 >>4;
//	ad_data[12] = AdcRegs.ADCRESULT12 >>4;
//	ad_data[13] = AdcRegs.ADCRESULT13 >>4;
//	ad_data[14] = AdcRegs.ADCRESULT14 >>4;
//	ad_data[15] = AdcRegs.ADCRESULT15 >>4;
}
