智能车制作

标题: 直立,加速度控制之后 [打印本页]

作者: 南宫封枫    时间: 2014-4-5 10:39
标题: 直立,加速度控制之后
我是用的是LPLD的V2库,中断函数按照官方的思路编写的,当角度P= 100,D= 2,速度P=0,I= 0的时候,程序能够按照时序正常运行( LPLD_GPIO_Toggle_b(PTA,5);  ///// 5HZ);但是当角度P= 100,D= 2,速度P=0,I= 0.1的时候程序就不能正常运行了( LPLD_GPIO_Toggle_b(PTA,5);  ///// 2.5HZ)。。。这个时候根本无法控制直立。。求牛人解答。。
void pit0(void)  //1MS进入中断
{  


        g_nSpeedControlPeriod ++;
        SpeedControlOutput();

        g_n1MSEventCount ++;

         LPLD_GPIO_Toggle_b(PTA,9);/////// 500Hz     

        if(g_n1MSEventCount >= 5)
       {
        g_n1MSEventCount = 0;

       }

       if(g_n1MSEventCount == 0)
       {
         LPLD_GPIO_Toggle_b(PTD,0);
         MMA8451();
         ENC_03();
         AngleCalculate();
         AngleControl();  
         MotorOutput();
       }
      else if(g_n1MSEventCount == 1)
      {
        LPLD_GPIO_Toggle_b(PTD,1);

        g_nSpeedControlCount ++;
        if(g_nSpeedControlCount >= 20)
        {
            LPLD_GPIO_Toggle_b(PTA,5);  ///// 5HZ
            GetMotorPulse();    //读取两个电极脉冲计数值      

            SpeedControl();  

            g_nSpeedControlCount = 0;
            g_nSpeedControlPeriod = 0;

        }
      }

      else if(g_n1MSEventCount == 2)
        LPLD_GPIO_Toggle_b(PTD,2);

      else if(g_n1MSEventCount == 3)
        LPLD_GPIO_Toggle_b(PTD,3);

      else if(g_n1MSEventCount == 4)
        LPLD_GPIO_Toggle_b(PTD,4);


}






欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2