代码拉取完成,页面将自动刷新
同步操作将从 guangjieMVP/AutoPID_C 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef __AUTOPID_H__
#define __AUTOPID_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef enum BOOL{
false = 0,
true = 1,
}bool;
struct AutoPID {
float _Kp;
float _Ki;
float _Kd;
float _integral;
float _previousError;
float _bangOn;
float _bangOff;
float *_input;
float *_setpoint;
float*_output;
float _outputMin;
float _outputMax;
unsigned long _timeStep;
float _lastStep;
bool _stopped;
};
struct AutoPIDRelay {
struct AutoPID ap;
bool * _relayState;
unsigned long _pulseWidth;
unsigned long _lastPulseTime;
float _pulseValue;
};
void AutoPID_AutoPID(struct AutoPID *ap, float *input, float *setpoint, float *output, float outputMin, float outputMax,
float Kp, float Ki, float Kd);
void AutoPID_run(struct AutoPID *ap);
void AutoPID_setGains(struct AutoPID *ap, float Kp, float Ki, float Kd);
void AutoPID_setBangBang(struct AutoPID *ap, float bangOn, float bangOff);
void AutoPID_setBangBangRange(struct AutoPID *ap, float bangRange);
void AutoPID_stop(struct AutoPID *ap);
void AutoPID_reset(struct AutoPID *ap);
bool AutoPID_isStopped(struct AutoPID *ap);
float AutoPID_getIntegral(struct AutoPID *ap);
void AutoPID_setIntegral(struct AutoPID *ap, float integral);
void AutoPIDRelay_run(struct AutoPIDRelay *apr);
float AutoPIDRelay_getPulseValue(struct AutoPIDRelay *apr);
#ifdef __cplusplus
}
#endif
#endif /* __AUTOPID_H__ */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。