首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ECT 测量转速 结果不稳定

ECT 测量转速 结果不稳定

关于转速测量的,我测量的结果波动较大,我做了Buffer【8】去除最大最小值后做个除以6平均,还是不稳定有时候会突然蹦下 。S12xdp512的mcu在xgate处理ECT中断,共有三路转速信号的测量。代码如下;
   //read RISING sec rpm @ic3
         interrupt  void ic3(void)
       {                                                
        TFLG1_C3F=1;
          T_3_over=overtime;
        T3over=T_3_over-T_3_over_last;
        if(T3over<0)
        T3over+=300;
        period3=((long)T3over*65535+ TC3-TC3_last) ; //ms
        sec_rpm[i_secrpm%8]= (120000000/period3);
   
       T_3_over_last=T_3_over;
       TC3_last=TC3;
       i_secrpm++;
        //asm SIF;
         }
这个是xgate里头的处理的,ECT的输入捕捉。

接下来在 mcu的每20ms中断里头处理计算转速
interrupt  void clutch0 (void)   
   {   
   XGIF1_XGIF_65=1;                                            
     do{SET_SEM(0);}
       while(!TST_SEM(0));
     
            if(period3>12000000)sec_ave=0;  
       else {  
         
          max_sec=sec_rpm[0];
         min_sec=sec_rpm[0];
       for(i=1;i<8;i++)
          {if(sec_rpm[i]>max_sec)
           max_sec=sec_rpm[i];
           if(sec_rpm[i]<min_sec)
           min_sec=sec_rpm[i];        
          }
       sec_ave=(sec_rpm[0]+sec_rpm[1]+sec_rpm[2]+sec_rpm[3]+sec_rpm[4]+sec_rpm[5]+sec_rpm[6]+sec_rpm[7]-min_sec-max_sec)/6;
       }
    REL_SEM(0);
}
转速不稳定会不会是设备本身运行就有问题?我碰到的液压马达,转动过程本身就有脉动现象,有跳变才是正常的。
里头的那个信号周期的计算出了问题,到65535后的溢出处理要特别修正,所以会突变。不是信号发生器的问题。
支持,什么出错了?
专业ATMEL代理商、XILINX等芯片www.hqbicw.com
要怎么修正呢?
生活就是呼吸,呼,是为了出口气,吸,是为了争口气。
我还真没有看明白你的意思 ,不过,我觉得一个测速,还真没有必要弄的那么复杂
个人BLOG:http://blog.eccn.com/u/107300/index.htm
就是输入捕捉的时候,每个上升沿会记录单前的TC值,前后两次的值一般情况是前次的数值小于当前的。若是反了,就是说TC值到65535后溢出,这个时候会出现较小的数减去较大的数,这样计算出来的数据会很大。(unsigned long 数据)这个时刻的处理要修正。注意period3的计算方法。
返回列表