MC9S12HY64汽车仪表步进电机实验

2019-12-10 18:27发布


MC9S12HY64汽车仪表步进电机实验:我的程序中为何一加仪表回零程序马上卡死?望老师指导?谢谢!

/************************************************************/
/*                         主函数                           */
/************************************************************/
void main(void)
{
  DisableInterrupts;
  INIT_PLL_24MHz ();
  initialize_tim0();
  init_motor();
  INIT_AD();
        EnableInterrupts;

  /**for(j=0;j<1080;j++)       //逆时针转动180度,指针归位
  {
      delay200us(1);      
      motor_step(0,1);      
      motor_step(1,0);
      motor_step(2,1);
      motor_step(3,1);
  }

      oil_actual=0;            
      water_actual=0;
      QY_actual=0;
      YW_actual=0;
      **/


   TIM0_TFLG1_C4F = 1;         //清除标志位
   TIM0_TC4 =  TIM0_TCNT + 125;  //设置输出比较时间为4us*125=500us
   TIM0_TIE=0x10;              //使能通道四中断

   TIM0_TFLG1_C7F = 1;         //清除标志位
   TIM0_TC7 =  TIM0_TCNT + 1250; //设置输出比较时间为4us*1250=5000us=5ms   

   for(;;)
  {

    POWER=POWER_PT1AD;  //读取PT1AD的电平状态赋值给变量POWER        
    if(POWER==1)        //如果POWER的值为1
        POWOK=1;        //点火开关开启电源工作自锁
        else
          POWOK=0;      //否则关闭电源   


     if(TIM0_TFLG1_C7F==1)   //5ms一个周期
      {
          TIM0_TFLG1_C7F = 1;          //清除标志位
          TIM0_TC7 = TIM0_TCNT + 1250;  //设置输出比较时间为5ms


          AD_in3 = AD_capture(3);       //调用带返回值的起动AD转换函数 AD02赋值给AD_in3
          AD_in2 = AD_capture(2);       //调用带返回值的起动AD转换函数 AD00赋值给AD_in2

          AD_in1 = AD_capture(1);       //调用带返回值的起动AD转换函数 AD03赋值给AD_in1
          AD_in0 = AD_capture(0);       //调用带返回值的起动AD转换函数 AD05赋值给AD_in0
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。