📄 motor.h
字号:
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 + -