微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 计算脉冲数怎么写让函数返回两个值

计算脉冲数怎么写让函数返回两个值

时间:10-02 整理:3721RD 点击:
使用两个计数器,计算脉冲数,怎么写让函数返回两个值,急!急!

返回数组 返回数组

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;
}这个东西的偏差单位怎么确定的

坐等答案!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top