📄 my_app.h
字号:
//AD数字滤波子程序
void AD_Digital_Filter(uint * AD0,uint * AD1,uint * AD3,uint * AD6,uint count)//count取值为3~255
{
uchar i=0;
uint AD_temp = 0;
uint AD0_max = 0;
uint AD0_min = 0;
ulong AD0_data = 0;
uint AD1_max = 0;
uint AD1_min = 0;
ulong AD1_data = 0;
uint AD3_max = 0;
uint AD3_min = 0;
ulong AD3_data = 0;
uint AD6_max = 0;
uint AD6_min = 0;
ulong AD6_data = 0;
for(i=0;i<count;i++)
{
AD_temp=ATD0DR0;
if(0==i)
AD0_max = AD0_min = AD_temp;
if(AD_temp>AD0_max)
AD0_max = AD_temp;
else if(AD_temp<AD0_min)
AD0_min = AD_temp;
AD0_data += AD_temp;
//---------------------------------------
AD_temp=ATD0DR1;
if(0==i)
AD1_max = AD1_min = AD_temp;
if(AD_temp>AD1_max)
AD1_max = AD_temp;
else if(AD_temp<AD1_min)
AD1_min = AD_temp;
AD1_data += AD_temp;
//---------------------------------------
AD_temp=ATD0DR3;
if(0==i)
AD3_max = AD3_min = AD_temp;
if(AD_temp>AD3_max)
AD3_max = AD_temp;
else if(AD_temp<AD3_min)
AD3_min = AD_temp;
AD3_data += AD_temp;
//---------------------------------------
AD_temp=ATD0DR6;
if(0==i)
AD6_max = AD6_min = AD_temp;
if(AD_temp>AD6_max)
AD6_max = AD_temp;
else if(AD_temp<AD6_min)
AD6_min = AD_temp;
AD6_data += AD_temp;
}
AD0_data = AD0_data - AD0_max - AD0_min;
AD0_data = AD0_data/(count-2);
AD1_data = AD1_data - AD1_max - AD1_min;
AD1_data = AD1_data/(count-2);
AD3_data = AD3_data - AD3_max - AD3_min;
AD3_data = AD3_data/(count-2);
AD6_data = AD6_data - AD6_max - AD6_min;
AD6_data = AD6_data/(count-2);
*AD0 = (uint)AD0_data;
*AD1 = (uint)AD1_data;
*AD3 = (uint)AD3_data;
*AD6 = (uint)AD6_data;
}
//通用数字滤波子程序
float G_Digital_Filter(float input,uchar count)//count取值为2~20
{
static uchar i = 0;
uchar j = 0;
static float buffer[20] = {0};
double summ = 0;
buffer[i] = input;
i++;
if(i == count)
i = 0;
summ = 0;
for(j=0;j<count;j++)
summ += buffer[j];
return summ/count;
}
float G_Digital_Filter_2(float input,uchar count)//count取值为2~20
{
static uchar i = 0;
uchar j = 0;
static float buffer[20] = {0};
double summ = 0;
buffer[i] = input;
i++;
if(i == count)
i = 0;
summ = 0;
for(j=0;j<count;j++)
summ += buffer[j];
return summ/count;
}
/***************************************************************************
FUNCTION: void DA_Output(uint data_A,uint data_B,uint data_C,uint data_D)
PURPOSE: 4路DA输出设定程序
****************************************************************************/
void DA_Output(uint data_A,uint data_B,uint data_C,uint data_D)
{
R_W = 0;
_LDAC = 0;
A0 = 0;
A1 = 0;
PORTAB = data_A;
_CS = 0;
// Delay(1);
_CS = 1;
// Delay(1);
A0 = 1;
A1 = 0;
PORTAB = data_B;
_CS = 0;
// Delay(1);
_CS = 1;
// Delay(1);
A0 = 0;
A1 = 1;
PORTAB = data_C;
_CS = 0;
// Delay(1);
_CS = 1;
// Delay(1);
A0 = 1;
A1 = 1;
PORTAB = data_D;
_CS = 0;
// Delay(1);
_CS = 1;
// Delay(1);
R_W = 1;
_LDAC = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -