⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor.c

📁 使用MC9S12DG128芯片
💻 C
字号:
#include "includes.h"

INT8S SmartSpeedtemp=1;
INT8U SmartOver=OFF;


/**************************************************************************/

void Motor_Func(void)
{

    INT8U LcdMotor[] = {"LcdMotor                                "};

    INT8U MotorSpeed = 0;

    INT8U MotoLevel = 0;

    LcdWriteAll(LcdMotor);

    InitPWM7();

    InitPWM6();

    InitPA();

    InitTOF();

    ClearPA();

    StartPA();

    InitTC1();     //初始化TC1,用来计算当前所运行的时间

    StartTC1();    //开始计时间


    InitTC3();     //初始化TC3,用来计算当前所运行的时间

    StartTC3();    //开始计时间


    for (;;)
    {

        while (KeyFlag == ON)
        {

            KeyFlag = OFF;

            if (ValueKey == Enter)
            {

                if (MotorSpeed > 40)
                {
                    MotorSpeed = 0;
                }

                Moto(++MotorSpeed);

                MotoLevel = (MotorSpeed/10);
                LcdWriteOne(0xC0,&MotoLevel,1);

                MotoLevel = (MotorSpeed - MotoLevel*10);
                LcdWriteOne(0xC1,&MotoLevel,1);
            }

            else if (ValueKey == 0x0D)
            {
                Moto(0);
            }

            else if (ValueKey == Exit) return;    //if have exit key,go back

        }

    }


    /*for(;;) {
      
      while (KeyFlag == ON) {
        
         KeyFlag = OFF;
        
        if (ValueKey == Enter){InitPWM45();SetPWM45(60000,20000);StartPWM45();} 
        
        else if (ValueKey == Exit) return;    //if have exit key,go back
        
       }
      
     }   */


    /* PORTB = 0x55;
     
     InitPWM6();
     
     SetPWM6(250,62);
     
     StartPWM6();
     
     InitPWM7();
     
     SetPWM7(250,62);
     
     StartPWM7();
     
     InitPWM45();
     
     StartPWM45();
     
     SetPWM45(60000,20000); */


}

/**************************************************/
void Moto(INT8S Spd)
{                //前进  0-50  0:stop  50:max speed

//  static  char   Spdtemp=0;

//  if(Spdtemp==Spd)  {return;}

//  else  { Spdtemp=Spd;}

    if ((Spd)>0)
    {
        StopPWM6();

        SetPWM7(250,250 - 5 * Spd);

        StartPWM7();



    }
    else if (Spd<0)
    {
        StopPWM7();

        SetPWM6(250,250 + 5 * Spd);

        StartPWM6();
    }
    else
    {
        StopMoto();
    }

}



/**************************************************/

void RMoto(INT8U Strength)         //倒车

{
    StopPWM7();

    SetPWM6(250,250 - 5 * Strength);

    StartPWM6();
}


void SmartMoto(INT8S SmartSpeed)
{
    SmartOver=OFF;
    
    if (SmartSpeed>0)
    {
        while (SmartSpeed<= 50 && CarStop==ON)
        {
            SmartSpeedtemp=++SmartSpeed ;

            Moto(SmartSpeedtemp);

            Delay(5);
        }
    }
    else if (SmartSpeed<0)
    {
        while (SmartSpeed>= -50 && CarStop==ON)
        {
            SmartSpeedtemp=--SmartSpeed;

            Moto(SmartSpeedtemp);

            Delay(5);

        }
    }
    else
    {
        if (SmartSpeedtemp>0 )
        {
            while (SmartSpeedtemp<=50 &&  CarStop==ON)
            {
                Moto(++SmartSpeedtemp);

                Delay(5);
  
            }
        }
        else if (SmartSpeedtemp<0 )
        {
            while (SmartSpeedtemp>=-50 &&  CarStop==ON)
            {
                Moto(--SmartSpeedtemp);

                Delay(5);

            }

        }

    }
    
    SmartOver=ON;
}







/***************************************************
void SmartMotoCheck(INT8S *pSmartSpeed)
{
  while((*pSmartSpeed>=0 || *pSmartSpeed<40) &&  (CarStop==ON))
  {

    (*pSmartSpeed)++;

    Moto(*pSmartSpeed);

  }

  while((*pSmartSpeed<=0 || *pSmartSpeed>-40) &&  (CarStop==ON))
  {

    (*pSmartSpeed)--;

    Moto(*pSmartSpeed);

  }
}


*****************************************************/





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -