📄 control.h
字号:
case 2: //p2
if((unsigned int)(control_time/10)>tl[1]+tl[0]){
pl_temp=change(pl[1],1);
pl_temp1=((float)change(pl[2],1)-(float)change(pl[1],1))/(float)(tl[2]*2);
control_timel=0;
start_l=3;
}
break;
case 3: //p2-p3
if(control_timel>5){
pl_temp+=pl_temp1;
pwm(1,1,pl_temp);
control_timel=0;
}
if((unsigned int)(control_time/10)>tl[2]+tl[1]+tl[0]){
start_l=4;
pwm(1,1,change(pl[2],1));
}
break;
case 4: //p3
if((unsigned int)(control_time/10)>tl[3]+tl[2]+tl[1]+tl[0]){
pl_temp=change(pl[2],1);
pl_temp1=((float)change(pl[3],1)-(float)change(pl[2],1))/(float)(tl[4]*2);
control_timel=0;
start_l=5;
}
break;
case 5: //p3-p4
if(control_timel>5){
pl_temp+=pl_temp1;
pwm(1,1,pl_temp);
control_timel=0;
}
if((unsigned int)(control_time/10)>tl[4]+tl[3]+tl[2]+tl[1]+tl[0]){
start_l=6;
pwm(1,1,change(pl[3],1));
}
break;
case 6: //p4
if((unsigned int)(control_time/10)>tl[5]+tl[4]+tl[3]+tl[2]+tl[1]+tl[0]){
pl_temp=change(pl[3],1);
pl_temp1=((float)change(pl[4],1)-(float)change(pl[3],1))/(float)(tl[6]*2);
control_timel=0;
start_l=7;
}
break;
case 7: //p4-p5
if(control_timel>5){
pl_temp+=pl_temp1;
pwm(1,1,pl_temp);
control_timel=0;
}
if((unsigned int)(control_time/10)>tl[6]+tl[5]+tl[4]+tl[3]+tl[2]+tl[1]+tl[0]){
start_l=8;
pwm(1,1,change(pl[4],1));
}
break;
case 8:
pwm(1,3,0);
start_l=9;
break;
}
switch(start_r){ //右枪
case 0: //p1
pwm(2,2,change(pr[0],2));
pr_temp=change(pr[0],2);
pr_temp1=((float)change(pr[1],2)-(float)change(pr[0],2))/(float)(tr[0]*2);
control_timer=0;
start_r=1;
break;
case 1: //p1-p2
if(control_timer>5){
pr_temp+=pr_temp1;
pwm(2,1,pr_temp);
control_timer=0;
}
if((unsigned int)(control_time/10)>tr[0]){
start_r=2;
pwm(2,1,change(pr[1],2));
}
break;
case 2: //p2
if((unsigned int)(control_time/10)>tr[1]+tr[0]){
pr_temp=change(pr[1],2);
pr_temp1=((float)change(pr[2],2)-(float)change(pr[1],2))/(float)(tr[2]*2);
control_timer=0;
start_r=3;
}
break;
case 3: //p2-p3
if(control_timer>5){
pr_temp+=pr_temp1;
pwm(2,1,pr_temp);
control_timer=0;
}
if((unsigned int)(control_time/10)>tr[2]+tr[1]+tr[0]){
start_r=4;
pwm(2,1,change(pr[2],2));
}
break;
case 4: //p3
if((unsigned int)(control_time/10)>tr[3]+tr[2]+tr[1]+tr[0]){
pr_temp=change(pr[2],2);
pr_temp1=((float)change(pr[3],2)-(float)change(pr[2],2))/(float)(tr[4]*2);
control_timer=0;
start_r=5;
}
break;
case 5: //p3-p4
if(control_timer>5){
pr_temp+=pr_temp1;
pwm(2,1,pr_temp);
control_timer=0;
}
if((unsigned int)(control_time/10)>tr[4]+tr[3]+tr[2]+tr[1]+tr[0]){
start_r=6;
pwm(2,1,change(pr[3],2));
}
break;
case 6: //p4
if((unsigned int)(control_time/10)>tr[5]+tr[4]+tr[3]+tr[2]+tr[1]+tr[0]){
pr_temp=change(pr[3],2);
pr_temp1=((float)change(pr[4],2)-(float)change(pr[3],2))/(float)(tr[6]*2);
control_timer=0;
start_r=7;
}
break;
case 7: //p4-p5
if(control_timer>5){
pr_temp+=pr_temp1;
pwm(2,1,pr_temp);
control_timer=0;
}
if((unsigned int)(control_time/10)>tr[6]+tr[5]+tr[4]+tr[3]+tr[2]+tr[1]+tr[0]){
start_r=8;
pwm(2,1,change(pr[4],2));
}
break;
case 8:
pwm(2,3,0);
start_r=9;
break;
}
}
}
}
void set_control(unsigned char on_flag){
unsigned char b;
if(esd==2)b=5;
else b=3;
if(on_flag==1){ //开阀门标志1开 2关
set_operate(eksset[0],1);
if(control_stop!=1)set_operate(eksset[1],1);
if(control_stop!=1)set_operate(eksset[2],1);
if((control_stop!=1)&(b==5))set_operate(eksset[3],1);
if((control_stop!=1)&(b==5))set_operate(eksset[4],1);
}
else if(on_flag==2){
set_operate(ejsset[0],2);
set_operate(ejsset[1],2);
set_operate(ejsset[2],2);
if(b==5){
set_operate(ejsset[3],2);
set_operate(ejsset[4],2);
}
}
}
void yq_control(){
unsigned long int temp;
YQ_ON() //开氩气
temp=(unsigned long int)eyq[en]*100;
control_time=0;
while((control_time<temp)&(control_stop!=1)){
if(control_dd==1){
key_start(); //检测点动
if(key_data1==9)control_stop=1;
}
else {
key_stop(); //检测停止
if(key_data1==7)control_stop=1;
}
}
if(control_stop!=1)p_control();
temp=(unsigned long int)elq[en]*100;
control_time=0;
while((control_time<temp)&(control_stop!=1)){
if(control_dd==1){
key_start();
if(key_data1==9)control_stop=1;
}
else {
key_stop();
if(key_data1==7)control_stop=1;
}
}
YQ_OFF()
}
void init_control(){
if(control_state!=key_data2){
picture9(0,0,0);
k1_flag=0;
k2_flag=0;
k3_flag=0;
k4_flag=0;
k5_flag=0;
start_flag=0;
control_stop=0;
control_dd=0;
SET1_OFF()
SET2_OFF()
SET3_OFF()
SET4_OFF()
SET5_OFF()
YQ_OFF()
control_state=key_data2;
}
}
/*****************************************************************************************
控制程序
*****************************************************************************************/
void control(){
unsigned char b;
if(esd==1)b=3;
else b=5;
if(picture_number!=9)return; //不是九画面不工作
switch(key_data2){
case 1: //自动
if(control_state!=key_data2){
picture9(0,0,0);
init_control();
control_state=key_data2;
}
if(key_data1==6){
set_control(1); //开SET1-SET4
yq_control();
set_control(2); //关SET1-SET4
control_stop=0;
}
break;
case 2: //半自动
if(control_state!=key_data2){
picture9(0,0,0);
init_control();
control_state=key_data2;
}
if(start_flag==0){
switch(key_data1){
case 1:
if(k1_flag==0){
SET1_ON()
k1_flag=1;
}
else {
SET1_OFF()
k1_flag=0;
}
break;
case 2:
if(k2_flag==0){
SET2_ON()
k2_flag=1;
}
else{
SET2_OFF()
k2_flag=0;
}
break;
case 3:
if(k3_flag==0){
SET3_ON()
k3_flag=1;
}
else{
SET3_OFF()
k3_flag=0;
}
break;
case 4:
if(b==5){
if(k4_flag==0){
SET4_ON()
k4_flag=1;
}
else{
SET4_OFF()
k4_flag=0;
}
}
break;
case 5:
if(b==5){
if(k5_flag==0){
SET5_ON()
k5_flag=1;
}
else{
SET5_OFF()
k5_flag=0;
}
}
break;
case 6: //启动
start_flag=1;
break;
}
}
if(start_flag==1){
yq_control();
set_control(2); //关SET1-SET4
control_stop=0;
start_flag=0;
k1_flag=0;
k2_flag=0;
k3_flag=0;
k4_flag=0;
k5_flag=0;
}
break;
case 3: // 手动
if(control_state!=key_data2){
init_control();
picture9(0,0,0);
control_state=key_data2;
}
if(start_flag==0){
switch(key_data1){
case 1:
if(k1_flag==0){
SET1_ON()
k1_flag=1;
}
else {
SET1_OFF()
k1_flag=0;
}
break;
case 2:
if(k2_flag==0){
SET2_ON()
k2_flag=1;
}
else{
SET2_OFF()
k2_flag=0;
}
break;
case 3:
if(k3_flag==0){
SET3_ON()
k3_flag=1;
}
else{
SET3_OFF()
k3_flag=0;
}
break;
case 4:
if(b==5){
if(k4_flag==0){
SET4_ON()
k4_flag=1;
}
else{
SET4_OFF()
k4_flag=0;
}
}
break;
case 5:
if(b==5){
if(k5_flag==0){
SET5_ON()
k5_flag=1;
}
else{
SET5_OFF()
k5_flag=0;
}
}
break;
case 6: //启动
start_flag=1;
break;
}
}
else if(start_flag==1){
yq_control();
control_stop=0;
start_flag=2;
}
else if(start_flag==2){
switch(key_data1){
case 1:
SET1_OFF()
k1_flag=0;
break;
case 2:
SET2_OFF()
k2_flag=0;
break;
case 3:
SET3_OFF()
k3_flag=0;
break;
case 4:
SET4_OFF()
k4_flag=0;
break;
case 5:
SET5_OFF()
k5_flag=0;
break;
}
if(k1_flag|k2_flag|k3_flag|k4_flag|k5_flag==0){
start_flag=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -