MC9S12HA64汽车仪表程序解读(已解决)

2020-02-21 21:32发布

本帖最后由 FSL_TICS_Robin 于 2014-8-8 14:25 编辑

有一段程是仪表步进电机控制,请解读一下
void T_SPEED_OnInterrupt(void)
{
  /* Write your code here ... */
  
  
       //模拟量快速转动,间隔时间TC2
      TC2 -= (word)32000;  //中断时加了32000要减去
      
      if(MotorSpeedIndex[SPEEDOMETER]<MaxSpeedIndex[SPEEDOMETER])//如果小于最高速度
      {
          if(MotorMoveStatus[SPEEDOMETER]==RAMPUP)   //加速、匀速、空闲
          {
              TC2 += (StepProfile[MotorSpeedIndex[SPEEDOMETER]++])>>1;            
          }
                         
            }
            else
            {
          MotorMoveStatus[SPEEDOMETER]=CONST;//均匀速度
                TC2 += (StepProfile[MotorSpeedIndex[SPEEDOMETER]])>>1;  //一倍的频率
               
            }
            
            
        // 以下表没有加减速的处理   
            if(MotorMode[POWER] == SEARCH)
            {
                 motor_micro_update(POWER);
            }
            if(MotorMode[TEMP] == SEARCH)
            {
                      motor_micro_update(TEMP);
            }   
            if(MotorMode[FUEL] == SEARCH)
            {
                      motor_micro_update(FUEL);
            }
             
            if(MotorMode[SPEEDOMETER] == SEARCH_ZERO)
            {
                motor_micro_update(SPEEDOMETER);
            }  
            //motor_update(SPEEDOMETER);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。