计算脉冲数怎么写让函数返回两个值
返回数组 返回数组
return只能返回1个值。可以用返回指针的方式返回多个值。
这里有一个C语言例程,你研究研究,或许对你有用
#include<stdio.h>
int *max(int x[],int y[],int *p,int *c)
{
int i;
int *m=&x[0];
for(i=0;i<10;i++)
{
if(*m<x[i])
{
*m=x[i];
*p=i;
*c=1;
}
}
for(i=0;i<10;i++)
{
if(*m<y[i])
{
*m=y[i];
*p=i;
*c=2;
}
}
return m;
}
void main()
{
int c1[10]={1,2,3,4,5,6,7,8,9,0};
int c2[10]={11,12,13,14,15,16,17,18,19,10};
int n,c,*p;
p=max(c1,c2,&n,&c);
printf("两个数组中最大的元素是%d,在c%d中的位置是%d\n",*p,c,n);
}
#include "PID.h"
float PIDCalc( PID *pp, float NextPoint )
{
float dError,
Error;
Error = pp->SetPoint - NextPoint; // 偏差
pp->SumError += Error; // 积分
dError = pp->LastError - pp->PrevError; // 当前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
if(pp->SumError>600) pp->SumError=600; //偏差单位 (根据实际情况进行设置调节)
else if(pp->SumError<-600) pp->SumError=-600;
return (pp->Proportion * Error // 比例项
+ pp->Integral * pp->SumError // 积分项
+ pp->Derivative * dError // 微分项
);
}
//****PID 调压函数********//
float Vol(int vSet,int v3){
float vOut; // PID Response (Output)
float vIn; // PID Feedback (Input)
vPID.SetPoint = vSet; // Set PID Setpoint
vIn = (float)v3; // Read Input
vOut = PIDCalc ( &vPID,vIn ); // Perform PID Interation
return vOut;
}这个东西的偏差单位怎么确定的
坐等答案!