⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 float_main.lst

📁 本文件提供各种驱动程序和汇编代码,包括温度芯片驱动等等.
💻 LST
字号:
C51 COMPILER V7.01  FLOAT_MAIN                                                             06/14/2004 19:37:41 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE FLOAT_MAIN
OBJECT MODULE PLACED IN float_main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE float_main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //**********************************************************************
   2          //功能          : 浮点滤波程序
   3          //作者          : lihj
   4          //创建日期      : 2004-06-13
   5          //版本          : V1.0
   6          //修改记录      :
   7          //***********************************************************************
   8          #include "math.h"
   9          
  10          //系统参数配置
  11          #define TS              5                                               //信号采样周期定义,单位是100ms
  12          #define TF              20                                              //滤波时间常数定义,单位是100ms
  13          
  14          //全局变量定义
  15          float g_fPreInput;                                              //上一周期的采样值
  16          float g_fQ;                                                             //滤波因子
  17          
  18          //内部函数声明
  19          float Filter(float);                                    //滤波函数
  20          
  21          //外部函数声明
  22          float Sample(void);                                             //信号采样接口函数
  23          void HardIni(void);                                             //硬件初始化接口
  24                          
  25          //主循环
  26          void main(void)
  27          {
  28   1              float CurSigVal;                                        //当前信号值
  29   1              int i;
  30   1      
  31   1              //硬件初始化
  32   1              HardIni();
  33   1      
  34   1              //全局变量初始化
  35   1              g_fPreInput = 0;
  36   1              g_fQ = (float)TS/(TF+TS);
  37   1      
  38   1              while(1)
  39   1              {
  40   2                      CurSigVal = Filter(Sample());   //采样并滤波
  41   2                      for(i=0;i<20000;i++);                   //待机一段时间后,开始下一循环
  42   2              }
  43   1      }
  44          
  45          //一阶惯性滤波
  46          //滤波耗时:
  47          float Filter(float CurInput)
  48          {
  49   1              float t;
  50   1              
  51   1              //如果信号没有改变,则直接返回
  52   1              if(g_fPreInput == CurInput)
  53   1              {
  54   2                      return CurInput;                                                //信号没有改变直接返回
  55   2              }
C51 COMPILER V7.01  FLOAT_MAIN                                                             06/14/2004 19:37:41 PAGE 2   

  56   1      
  57   1              //滤波精度处理
  58   1              if(CurInput < 0.000001)
  59   1              {
  60   2                      CurInput = 0;
  61   2              }
  62   1              
  63   1      //已经逼进最终值时的处理
  64   1              if(fabs(CurInput - g_fPreInput) < 0.000001)
  65   1              {
  66   2                      g_fPreInput = CurInput;
  67   2                      return(CurInput);
  68   2              }
  69   1      
  70   1              //滤波
  71   1              t = g_fPreInput + (CurInput- g_fPreInput )*g_fQ;
  72   1              g_fPreInput = t;                                                //保存本周期的计算值
  73   1      
  74   1              return t;
  75   1      }
  76          
  77          //硬件初始化接口
  78          void HardIni(void)
  79          {
  80   1      
  81   1      }
  82          
  83          //信号采样接口
  84          float Sample(void)
  85          {
  86   1              return 1.0;
  87   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    232    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -