📄 filter.c
字号:
#include"math.h"
#include"..\inc\menu.h"
#include"..\inc\MotorCtrl.h"
extern int ADRESULT[];
extern int Spcnt;
extern int adc_js;
extern int Ctrldata[];
extern unsigned int qepCnt;
extern unsigned int iopcread();
int volt=0;
int current=0;
int spdgive=0;
int speedgive=0;
int hardspeedgive=0;
void filter();
//-------------------------------------------------------
// 函数名称:filter
// 输入参数:无
// 输出参数:无
// 功能描述:误差正负及均值滤波
//-------------------------------------------------------
void filter()
{
int i,j;
Ctrldata[HARDSPDSET]=ADRESULT[HARDSPDSET]; //硬速度给定
Ctrldata[CHA]=(iopcread())? -ADRESULT[CHA]: ADRESULT[CHA]; //PC口为0,则差量为正,非0则差量为负
if(read_menudata(RFWAY) == 0)
{
Ctrldata[SUDU]=ADRESULT[SUDU]; //速度反馈
}
else if(read_menudata(RFWAY) == 1)
{
Ctrldata[SUDU]=qepCnt*3/2; //编码器反馈
}
if(Ctrldata[LINGSU]<(1000*12))
{
Ctrldata[LINGSU]+=Ctrldata[SUDU];
}
if(Ctrldata[WUCHAJIFEN]<(1000*12))
{
Ctrldata[WUCHAJIFEN]+=ADRESULT[GEIDING];
}
current+=ADRESULT[DIANLIU]; //反馈电流累加16次
volt+=ADRESULT[DIANYA]; //反馈电压累加16次
speedgive+=ADRESULT[GEIDING];
hardspeedgive+=ADRESULT[HARDSPDSET];
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -