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

📄 motor.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
📖 第 1 页 / 共 2 页
字号:
    else                    cs_speed_temp=(unsigned char)(800/cs_step_diff);
    if(cs_step_diff<40)     cs_speed_temp=20;
    cs_dec_speed=cs_speed_temp;  
}
//******************************
//函数: void cs_step_oper(void)
//描述: 车速操作
//参数: none
//返回值:none
//******************************
void cs_step_oper(void){  
  //unsigned char yb_temp0;
  //if(cs_step_change!=cs_stepall){
    cs_dec_count++;
    /*if(cs_step_diff>36){cs_dec_speed=1;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(cs_step_diff>>2);
      cs_dec_speed=10-yb_temp0;
    }*/
    if(cs_dec_count==cs_dec_speed){
      cs_step_diff--;
      cs_dir=cs_dir_flag;//1=反转
      cs_dec_count=0;
      cs_sig=0;
      if(cs_dir_flag){cs_stepall--;}			  //反转
      else{cs_stepall++;}										//正转
      cs_sig=1;  
    }
  //}
}

//******************************
//函数: void zs_step_count(void)
//描述: 转速步数计算
//参数: none
//返回值:none
//******************************
void zs_step_count(void){  
    unsigned int yb_temp;
    unsigned long yb_temp1;
    unsigned char zs_speed_temp;
    
    yb_temp=zs_fcanh;yb_temp<<=8;yb_temp+=zs_fcanl;
    if(yb_temp>5602) yb_temp=5602;
    
    if(yb_temp!=zs_last){
      zs_last=yb_temp;
      
      yb_temp1=yb_temp;
      yb_temp1*=84;//7度*12微步
      yb_temp=(unsigned int)(yb_temp1/200);       //计算转动步数
      //100rpm/0.5rpm
      
      if(yb_temp<zs_stepall){                    //反
        zs_step_diff=zs_stepall-yb_temp;
        zs_dir_flag=1;
      }
      else{                                       //正
        zs_step_diff=yb_temp-zs_stepall;
        zs_dir_flag=0;
      }      
      zs_step_change=yb_temp;
    }
    //
    if(zs_step_diff>400)    zs_speed_temp=1;
    else                    zs_speed_temp=(unsigned char)(800/zs_step_diff);
    if(zs_step_diff<40)     zs_speed_temp=20;
    zs_dec_speed=zs_speed_temp;  
}
//******************************
//函数: void zs_step_oper(void)
//描述: 转速操作
//参数: none
//返回值:none
//******************************
void zs_step_oper(void){  
  //unsigned char yb_temp0;
  //if(zs_step_change!=zs_stepall){
    zs_dec_count++;
    /*if(zs_step_diff>36){zs_dec_speed=1;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(zs_step_diff>>2);
      zs_dec_speed=10-yb_temp0;
    }*/
    if(zs_dec_count==zs_dec_speed){
      zs_step_diff--;
      zs_dir=zs_dir_flag;//1=反转
      zs_dec_count=0;
      zs_sig=0;
      if(zs_dir_flag){zs_stepall--;}			  //反转
      else{zs_stepall++;}										//正转
      zs_sig=1;  
    }
  //}
}

//******************************
//函数: void dy_step_count(void)
//描述: 系统电源步数计算
//参数: none
//返回值:none
//******************************
void dy_step_count(void){  
    unsigned int yb_temp;
    unsigned long yb_temp1;
    unsigned char dy_speed_temp;
    if(dy_temp<18) dy_temp=18;
    if(dy_temp>33) dy_temp=33;
    
    if(dy_temp!=dy_last){
      dy_last=dy_temp;
      
      yb_temp1=dy_temp;
      yb_temp1*=540;
      yb_temp1-=9720;
      yb_temp=(unsigned int)(yb_temp1/7);        //计算转动步数
      //18-32<->90*12
      
      if(yb_temp<dy_stepall){                    //反
        dy_step_diff=dy_stepall-yb_temp;
        dy_dir_flag=1;
      }
      else{                                       //正
        dy_step_diff=yb_temp-dy_stepall;
        dy_dir_flag=0;
      }      
      dy_step_change=yb_temp;
    }
    //
    if(dy_step_diff>1000)   dy_speed_temp=2;
    else                    dy_speed_temp=(unsigned char)(2000/dy_step_diff);
    if(dy_step_diff<30)     dy_speed_temp=66;
    dy_dec_speed=dy_speed_temp;    
}
//******************************
//函数: void dy_step_oper(void)
//描述: 系统电源操作
//参数: none
//返回值:none
//******************************
void dy_step_oper(void){  
  //unsigned char yb_temp0;
  //if(dy_step_change!=dy_stepall){
    dy_dec_count++;
    /*if(dy_step_diff>36){dy_dec_speed=2;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(dy_step_diff>>2);
      dy_dec_speed=11-yb_temp0;
    }*/
    if(dy_dec_count==dy_dec_speed){
      dy_step_diff--;
      dy_dir=dy_dir_flag;//1=反转
      dy_dec_count=0;
      dy_sig=0;
      if(dy_dir_flag){dy_stepall--;}			  //反转
      else{dy_stepall++;}										//正转
      dy_sig=1;  
    }
  //}
}

//******************************
//函数: void ry_step_count(void)
//描述: 燃油步数计算
//参数: none
//返回值:none
//******************************
void ry_step_count(void){  
    unsigned int yb_temp;
    unsigned char ry_speed_temp;
    if(ry_fcan!=ry_last){
      ry_last=ry_fcan;
      
      yb_temp=ry_fcan;
      yb_temp=yb_temp*216/51;                    //计算转动步数
      //255<->90*12   90*12/255
      
      if(yb_temp<ry_stepall){                    //反
        ry_step_diff=ry_stepall-yb_temp;
        ry_dir_flag=1;
      }
      else{                                       //正
        ry_step_diff=yb_temp-ry_stepall;
        ry_dir_flag=0;
      }      
      ry_step_change=yb_temp;
    }
    //
    if(ry_step_diff>1000)   ry_speed_temp=1;
    else                    ry_speed_temp=(unsigned char)(2000/ry_step_diff);
    if(ry_step_diff<30)     ry_speed_temp=66;
    ry_dec_speed=ry_speed_temp;
}
//******************************
//函数: void ry_step_oper(void)
//描述: 燃油操作
//参数: none
//返回值:none
//******************************
void ry_step_oper(void){
  //unsigned char yb_temp0;
  //if(ry_step_change!=ry_stepall){
    ry_dec_count++;
    /*if(ry_step_diff>36){ry_dec_speed=2;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(ry_step_diff>>2);
      ry_dec_speed=11-yb_temp0;
    }*/
    if(ry_dec_count==ry_dec_speed){
      ry_step_diff--;
      ry_dir=ry_dir_flag;//1=反转
      ry_dec_count=0;
      ry_sig=0;
      if(ry_dir_flag){ry_stepall--;}			  //反转
      else{ry_stepall++;}										//正转
      ry_sig=1;  
    }
  //}
}

//******************************
//函数: void sw_step_count(void)
//描述: 水温步数计算
//参数: none
//返回值:none
//******************************
void sw_step_count(void){
    unsigned int yb_temp;
    unsigned char sw_speed_temp;
    if(sw_fcan<40)  sw_fcan=40;
    if(sw_fcan>121) sw_fcan=121;
    
    if(sw_fcan!=sw_last){
      sw_last=sw_fcan;
      
      yb_temp=sw_fcan-40;
      yb_temp=(yb_temp*27)>>1;                   //计算转动步数
      //90*12/(120-40)=9*12/8=27/2
      
      if(yb_temp<sw_stepall){                    //反
        sw_step_diff=sw_stepall-yb_temp;
        sw_dir_flag=1;
      }
      else{                                      //正
        sw_step_diff=yb_temp-sw_stepall;
        sw_dir_flag=0;
      }      
      sw_step_change=yb_temp;
    }
    //
    if(sw_step_diff>1500)   sw_speed_temp=2;
    else                    sw_speed_temp=(unsigned char)(3000/sw_step_diff);
    if(sw_step_diff<30)     sw_speed_temp=100;
    sw_dec_speed=sw_speed_temp;
}
//******************************
//函数: void sw_step_oper(void)
//描述: 水温操作
//参数: none
//返回值:none
//******************************
void sw_step_oper(void){
  //unsigned char yb_temp0;
  //if(sw_step_change!=sw_stepall){
    sw_dec_count++;
    /*if(sw_step_diff>36){sw_dec_speed=3;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(sw_step_diff>>2);
      sw_dec_speed=12-yb_temp0;
    }*/
    if(sw_dec_count==sw_dec_speed){
      sw_step_diff--;
      sw_dir=sw_dir_flag;//1=反转
      sw_dec_count=0;
      sw_sig=0;
      if(sw_dir_flag){sw_stepall--;}			  //反转
      else{sw_stepall++;}										//正转
      sw_sig=1;  
    }
  //}
}

//******************************
//函数: void jy_step_count(void)
//描述: 机油步数计算
//参数: none
//返回值:none
//******************************
void jy_step_count(void){
    unsigned int yb_temp;
    unsigned long yb_temp1;
    unsigned char jy_speed_temp;
    if(jy_fcan>63)  jy_fcan=63;
    
    if(jy_fcan!=jy_last){
      jy_last=jy_fcan;
      
      yb_temp1=jy_fcan;
      yb_temp1*=432;
      yb_temp=(unsigned int)(yb_temp1/25);       //计算转动步数
      //90*12*16/1000=9*3*16/25=432/25
      //(0-1Mpa)<->90*12   16Kpa*yb_temp1<->yb_temp
      
      if(yb_temp<jy_stepall){                    //反
        jy_step_diff=jy_stepall-yb_temp;
        jy_dir_flag=1;
      }
      else{                                      //正
        jy_step_diff=yb_temp-jy_stepall;
        jy_dir_flag=0;
      }      
      jy_step_change=yb_temp;
    }
    //
    if(jy_step_diff>1000)   jy_speed_temp=1;
    else                    jy_speed_temp=(unsigned char)(2000/jy_step_diff);
    if(jy_step_diff<30)     jy_speed_temp=70;
    jy_dec_speed=jy_speed_temp;
}
//******************************
//函数: void jy_step_oper(void)
//描述: 机油操作
//参数: none
//返回值:none
//******************************
void jy_step_oper(void){
  //unsigned char yb_temp0;
  //if(jy_step_change!=jy_stepall){
    jy_dec_count++;
    /*if(jy_step_diff>36){jy_dec_speed=2;}    //3度 
    else{                                     //计算速度参数
      yb_temp0=(unsigned char)(jy_step_diff>>2);
      jy_dec_speed=11-yb_temp0;
    }*/
    if(jy_dec_count==jy_dec_speed){
      jy_step_diff--;
      jy_dir=jy_dir_flag;//1=反转
      jy_dec_count=0;
      jy_sig=0;
      if(jy_dir_flag){jy_stepall--;}			  //反转
      else{jy_stepall++;}										//正转
      jy_sig=1;  
    }
  //}
}

////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
/*
  上电复位motor_go0();->主函数里计算各仪表步数,时基(1.024ms)驱动指针
  工作或休眠指针复位motor_go0();
  单个表复位分别设置
*/

⌨️ 快捷键说明

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