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

📄 adtest.c

📁 uboot底层驱动
💻 C
字号:

#include "hardware_reg.h"
#include "my_printf.h"
#include "def.h"

#define	size1	0.00122100122
#define	AD_START	0xFFD0
#define AD_READ		0x0000

extern void init_SPI(void);
extern unsigned short SPI_Transfer(unsigned short command);


typedef	struct _DATA_AD2DSP                                      /* 14bitAD2é?ˉoóêy?Y′?·?μ? */
{
    float	IA, IB, IC,
			I0,
			Ua, Ub, Uc,
			VREF;
}Data_In;
Data_In  data_in, datalist;

struct _AD_data
{
	unsigned long IA,
				IB,
				IC,
				I0,
				Ua,
				Ub,
				Uc,
				VREF;
}AD_data;


void AD_Convert(void)
{

	data_in.IA = AD_data.IA * size1;
	data_in.IB = AD_data.IB * size1;
	data_in.IC = AD_data.IC * size1;
	data_in.Ua = AD_data.Ua * size1;
	data_in.Ub = AD_data.Ub * size1;
	data_in.Uc = AD_data.Uc * size1;
	data_in.I0 = AD_data.I0 * size1;


	datalist.IA = (data_in.IA - data_in.VREF)*1.05;
	
	datalist.IB = (data_in.IB - data_in.VREF)*1.04;
	datalist.IC = (data_in.IC - data_in.VREF)*1.04;

	datalist.Ua = data_in.Ua - data_in.VREF;
	datalist.Ub = data_in.Ub - data_in.VREF;
	datalist.Uc = data_in.Uc - data_in.VREF;
	datalist.I0 = (data_in.I0 - data_in.VREF)*1.04;
	datalist.VREF = data_in.VREF;

}




void read_AD(void)
{	
	U32 AD_sample;
	int i;
	
	init_SPI();

	NOP();
	SPI_Transfer(AD_START);

	//read process
	for (i = 0; i < 8; i++)
	{
		AD_sample = (SPI_Transfer(AD_READ) & 0xFFFF);
		switch ((AD_sample&0xF000) >> 12)
		{
			case 0:
				AD_data.IA = (AD_sample & 0xFFF);
				break;
			case 1:
				AD_data.IB = (AD_sample & 0xFFF);
				break;
			case 2:
				AD_data.IC = (AD_sample & 0xFFF);
				break;
			case 3:
				AD_data.Ua = (AD_sample & 0xFFF);
				break;
			case 4:
				AD_data.Ub = (AD_sample & 0xFFF);
				break;
			//data[i1 % 100] = AD_sample;
			case 5:
				AD_data.Uc = (AD_sample & 0xFFF);
				break;
			case 6:
				AD_data.I0 = (AD_sample & 0xFFF);
				break;
			//i1++; 
			case 7:
				AD_data.VREF = (AD_sample & 0xFFF);
				break;
			default :
				break;
		}
	}
	AD_Convert();
	my_printf("datalist.Ua=%f\n\r",datalist.Ua);
	my_printf("datalist.Ub=%f\n\r",datalist.Ub);
	my_printf("datalist.Uc=%f\n\r",datalist.Uc);

}






⌨️ 快捷键说明

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