微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 同一型号的单片机为什么有几个在浮点数计算上会出错呢?

同一型号的单片机为什么有几个在浮点数计算上会出错呢?

时间:10-02 整理:3721RD 点击:
做了50块温控板有5块在PID计算部分出错,单片机型是STC12C5A60S2。为什么同样的程序有的计算会出错呢?
计算部分如下:

  1. /*--------------------------------PID------------------------------------*/
  2. float PIDCalc( PID *pp, float NextPoint )
  3. {
  4.         float xdata dError,Error;
  5.         Error = pp->SetPoint - NextPoint; // 偏差
  6.         pp->SumError += Error; // 积分
  7.         dError = pp->LastError - pp->PrevError; // 当前微分
  8.         pp->PrevError = pp->LastError;
  9.         pp->LastError = Error;
  10.         return (pp->Proportion * Error//比例
  11.         + pp->Integral * pp->SumError*0.01  //积分项
  12.         + pp->Derivative * dError); //   微分项
  13. }

复制代码


上一篇:KL26Z学习笔记
下一篇:03-定时器输出pwm

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

网站地图

Top