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

📄 motor1.txt

📁 是本人在省赛是写的ad采集和显示的程序
💻 TXT
字号:
#ifndef __Motor
#define __Motor
//Motor0 p2.0-3
//Motor1 p2.4-7
unsigned long int motor_step=0;
unsigned int  NN0,NN1;
unsigned char mod0;
unsigned char mod1;
unsigned long int step0;
unsigned long int step1;
unsigned char pulse0;
unsigned char pulse1;
int dir0;//1 正 0停 -1反
int dir1;

float lastV0;
float lastV1;
void Motor0SpeedChange(float v)
{
 if(v==0)
 {
  dir0 = 0;  
 }
 else if(v>0)
 {
  dir0 = 1;
  NN0 = 1000000/v; 
 }
 else
 {
  dir0 = -1;
  v = 0-v;
  NN0 = 1000000/v; 
 }

}

void Motor1SpeedChange(float v)
{
 if(v==0)
 {
  dir1 = 0; 
 }
 else if(v>0)
 {
  dir1 = 1;
  NN1 = 1000000/v; 
 }
 else
 {
  dir1 = -1;
  v = 0-v;
  NN1 = 1000000/v; 
 }
}

void StepMode0(unsigned long int x,float v)//步和方向
{
 mod0=1; 
 step0=x;
 Motor0SpeedChange(v);
}

void StepMode1(unsigned long int x,float v)
{
 mod1=1; 
 step1=x;
   Motor1SpeedChange(v);
}


////////////////////////////////////////////////////////////////////////////////
void Motor_Init(float v0,float v1)
{
  //1000000Hz SCLK
//Motor0SpeedChange(v0);
//Motor1SpeedChange(v1);
P2DIR |=0Xff;

TACTL = 0;
TACTL |= TASSEL_2+TACLR+ ID_3;  // clock source select: 2 - SMCLK+counter clear+input divider: 8
TACTL |= MC_2;                  // Timer A mode control: 2 - Continous up 
CCTL0 |= CCIE;                             // CCR0中断允许
CCR0  = NN0;                             // 为CCR0写入初值
CCTL1 |= CCIE;                             // CCR1中断允许
CCR1  = NN1;                             // 为CCR1写入初值
}
////////////////////////////////////////////////////////////////////////////////////////////////////
/////
////
///
/////////////////////////////////////////////////////////////////////////////////////////////////////
void step_mode(unsigned long int n,float v)
{
   motor_step=0;
    Motor0SpeedChange(v);
   Motor1SpeedChange(v);
    while(motor_step<n);
     Motor0SpeedChange(0);
     Motor1SpeedChange(0);
}

void Pulse0()
{      
  if(mod0==1)step0--;
  if(mod0==1&&step0==0)dir0=0;
       if(dir0==0)
        {
               //     P2OUT &= ~BIT0;
                  // P2OUT &= ~BIT1;
                   P2OUT &= ~BIT2;
                   P2OUT &= ~BIT3;
       P2OUT |= BIT0;
          P2OUT |= BIT1;
          //P2OUT |= BIT2;
          //P2OUT |= BIT3; 
        }
        else if(dir0==1)
        {
          switch(pulse0%8)
              {
                case 0:
                  {
                   P2OUT |=  BIT0;
                   P2OUT &= ~BIT1;
                   P2OUT &= ~BIT2;
                   P2OUT &= ~BIT3;
                  }break;
                case 1:
                  {
                    P2OUT |=  BIT0;
                    P2OUT |=  BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT &= ~BIT3;
                  }break;
                case 2:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT |=  BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT &= ~BIT3;
                    
                  }break;
                case 3:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT |=  BIT1;
                    P2OUT |=  BIT2;
                    P2OUT &= ~BIT3; 
                  }break;
                case 4:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT |=  BIT2;
                    P2OUT &= ~BIT3;
                  }break;
                case 5:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT |=  BIT2;
                    P2OUT |=  BIT3;  
                  }break;
                case 6:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT |=  BIT3; 
                  }break;
                case 7:
                  {
                    P2OUT |=  BIT0;
                    P2OUT &=  ~BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT |=  BIT3; 
                  }break;
                default:break;
              }
        }
        else if(dir0==-1)
        {
          switch(pulse0%8)
              {
                case 0:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT |=  BIT3;
                  }break;
                case 1:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT |=  BIT2;
                    P2OUT |=  BIT3;  
                  }break;
                case 2:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT |=  BIT2;
                    P2OUT &= ~BIT3; 
                  }break;
                case 3:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT |=  BIT1;
                    P2OUT |=  BIT2;
                    P2OUT &= ~BIT3;   
                  }break;
                case 4:
                  {
                    P2OUT &= ~BIT0;
                    P2OUT |=  BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT &= ~BIT3;  
                  }break;
                case 5:
                  {
                    P2OUT |=  BIT0;
                    P2OUT |=  BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT &= ~BIT3;
                  }break;
                case 6:
                  {
                    P2OUT |=  BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT &= ~BIT3;
                  }break;
                case 7:
                  {
                    P2OUT |=  BIT0;
                    P2OUT &= ~BIT1;
                    P2OUT &= ~BIT2;
                    P2OUT |=  BIT3;  
                  }break;
                default:break;
              }
        }
}
void Pluse1()
{       if(mod1==1)step1--;
  if(mod1==1&&step1==0)dir1=0;
        if(dir1==0)
        {
               //  P2OUT &= ~BIT4;
                 //  P2OUT &= ~BIT5;
                   P2OUT &= ~BIT6;
                   P2OUT &= ~BIT7;
          P2OUT |= BIT4;
          P2OUT |= BIT5;
          //P2OUT |= BIT6;
         // P2OUT |= BIT7;
        }
        else if(dir1==1)
        {
          switch(pulse1%8)
              {
                case 0:
                  {
                   P2OUT |=  BIT4;
                   P2OUT &= ~BIT5;
                   P2OUT &= ~BIT6;
                   P2OUT &= ~BIT7;
                  }break;
                case 1:
                  {
                    P2OUT |=  BIT4;
                    P2OUT |=  BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT &= ~BIT7;
                  }break;
                case 2:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT |=  BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT &= ~BIT7;
                    
                  }break;
                case 3:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT |=  BIT5;
                    P2OUT |=  BIT6;
                    P2OUT &= ~BIT7; 
                  }break;
                case 4:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT |=  BIT6;
                    P2OUT &= ~BIT7;
                  }break;
                case 5:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT |=  BIT6;
                    P2OUT |=  BIT7;  
                  }break;
                case 6:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT |=  BIT7; 
                  }break;
                case 7:
                  {
                    P2OUT |=  BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT |=  BIT7; 
                  }break;
                default:break;
              }
        }
        else if(dir1==-1)
        {
          switch(pulse1%8)
              {
                case 0:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT |=  BIT7;
                  }break;
                case 1:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT |=  BIT6;
                    P2OUT |=  BIT7;  
                  }break;
                case 2:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT |=  BIT6;
                    P2OUT &= ~BIT7; 
                  }break;
                case 3:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT |=  BIT5;
                    P2OUT |=  BIT6;
                    P2OUT &= ~BIT7;   
                  }break;
                case 4:
                  {
                    P2OUT &= ~BIT4;
                    P2OUT |=  BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT &= ~BIT7;  
                  }break;
                case 5:
                  {
                    P2OUT |=  BIT4;
                    P2OUT |=  BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT &= ~BIT7;
                  }break;
                case 6:
                  {
                    P2OUT |=  BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT &= ~BIT7;
                  }break;
                case 7:
                  {
                    P2OUT |=  BIT4;
                    P2OUT &= ~BIT5;
                    P2OUT &= ~BIT6;
                    P2OUT |=  BIT7;  
                  }break;
                default:break;
              }
        }
}
#endif

⌨️ 快捷键说明

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