#include "commen.h"
#include "bsp.h"
#include "stm32f10x.h"
/****************************************************************************
* 名称:ADConvert()
* 功能:AD转换
* 入口参数:无
* 出口参数:无
* 说明:
****************************************************************************/
void delay_max1294(u8 k) //ltc1272的专用延时
{
while(k--);
}
void GPIOD1_Config(void) //低八位输出
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
void GPIOD2_Config(void) //低八位输入
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
float ADConvert(void)
{
float ADVolt=0.0;
u16 ADValue=0;
AD_CSSET;
AD_WRSET;
AD_RDSET;
AD_CSRESET;
delay_max1294(4) ;
AD_WRRESET;
delay_max1294(3) ;
GPIOD2_Config();
GPIOD->ODR = 0x00000098; //采用内部模式,通道一输入
delay_max1294(3) ;
AD_WRSET;
delay_max1294(3) ;
while(AD_CHECK_INT);
delay_max1294(2);
AD_RDRESET;
GPIOD1_Config();
ADValue = Data_Port_MAX1294;
DelayUs(1);
AD_CSSET;
ADValue &= 0x0fff;
ADVolt=(2.5*(ADValue)/4095.0);
return ADVolt;
}
float max1294_sumpling(void)
{ float vol[30]={0};
float temp_sum;
char j;
float sum0=0.0;
for(j=0;j<30;j++)
vol[j]=ADConvert();
for(j=5;j<25;j++)
sum0+=vol[j];
temp_sum=sum0/20.0;
return temp_sum;
}
/****************************************************************************
* 名称:ShowADValue()
* 功能:AD转换
* 入口参数:无
* 出口参数:无
* 说明:
****************************************************************************/
void ShowADValue(void )
{
// u8 count=0;
float ADVolt=0.0;
char strv[16]="0";
ADVolt = max1294_sumpling();
sprintf(strv,"%8.4f",ADVolt);
DispStr(0,2,(u8*)strv);
}