void SetNeutral()
{
  uint16 i;
  
  int32 sum1=0;
  int32 sum2=0;
  int32 sum3=0;

  delayMs(500);
  
  for(i = 0; i<1000; i++)
  {
    sum1 = sum1 +(int32)LPLD_ADC_Get(ADC0, AD15);
    sum2 = sum2 +(int32)LPLD_ADC_Get(ADC0, AD8);
    sum3 = sum3 +(int32)LPLD_ADC_Get(ADC0, AD11);
    delayMs(1);
  }
  
  
  GYRO_OFFSET = (int16)(sum1/1000);
  ACC_OFFSET  = (int16)(sum2/1000);
  DIRECTION_OFFSET = (int16)(sum3/1000);
  
  delayMs(1);
}
void main (void)
{
  uint16 result;
  
  //初始化ADC
  adc_init();
  
  while(1)
  {
    result = LPLD_ADC_Get(ADC0, DAD1);
    printf("DAD1 result = %d\r\n", result);
    delay(5000);
  } 
}
void PIT_Signal(void)
{   
  DisableInterrupts;
  
  //--------------------------------------------------------------------------
  g_nSpeedControlPeriod++;
  SpeedControlOutput();  
  g_nDirectionControlPeriod ++;
  DirectionControlOutput();
  //---------------------------------------------------------------------------  
  g_nCarCount++;//中断服务片选
  switch(g_nCarCount)
  {
    //---------------------------计数:0   
  case 1:
   {   
      asm("nop"); 
      
   }; break;
    
     //---------------------------计数:1   AD采集                   第1个1ms  
  case 2:          
   {
      asm("nop");
      AngleCalculate(); 
      g_nDirectionGyro = (int16)LPLD_ADC_Get(ADC0, AD11); //方向陀螺仪采集
   }; break;
    
    //----------------------------计数:2   直立控制 电机PWM输出     第2个1ms
  case 3:
    { 
       asm("nop");
       AngleControl();
       MotorOutput();
    };  break;
    
    //----------------------------计数:3    车模速度控制            第3个1ms
  case 4:
    {  
       asm("nop");
       g_nSpeedControlCount++;  
      if(g_nSpeedControlCount>=20)        //控制是否进入速度更新环节
      { 
        SpeedControl();
        g_nSpeedControlCount = 0;
        g_nSpeedControlPeriod = 0; 
      }
    };break;
    
    //----------------------------计数:4    车模方向控制           第4个1ms
  case 5:   
    {  
      asm("nop");
      g_nCarCount=0; 
      
      g_nDirectionControlCount ++;
      DirectionVoltageSigma();           //电感采集、滤波                                             
      
      if( g_nDirectionControlCount >= 2)//控制是否进入方向更新环节
       {
          DirectionControl();
          g_nDirectionControlCount = 0;
          g_nDirectionControlPeriod = 0;
       }
    };break;
  }
  
  
  EnableInterrupts;
}