📄 control.c~
字号:
}
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]);
pl_temp1=((float)change(pl[4])-(float)change(pl[3]))/(float)tl[6];
control_timel=0;
start_l=7;
}
break;
case 7: //p4-p5
if(control_timel>10){
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]));
}
break;
case 8:
pwm(1,3,0);
start_l=9;
break;
}
switch(start_r){ //右枪
case 0: //p1
pwm(2,2,change(pr[0]));
pr_temp=change(pr[0]);
pr_temp1=((float)change(pr[1])-(float)change(pr[0]))/(float)tr[0];
control_timer=0;
start_r=1;
break;
case 1: //p1-p2
if(control_timer>10){
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]));
}
break;
case 2: //p2
if((unsigned int)(control_time/10)>tr[1]+tr[0]){
pr_temp=change(pr[1]);
pr_temp1=((float)change(pr[2])-(float)change(pr[1]))/(float)tr[2];
control_timer=0;
start_r=3;
}
break;
case 3: //p2-p3
if(control_timer>10){
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]));
}
break;
case 4: //p3
if((unsigned int)(control_time/10)>tr[3]+tr[2]+tr[1]+tr[0]){
pr_temp=change(pr[2]);
pr_temp1=((float)change(pr[3])-(float)change(pr[2]))/(float)tr[4];
control_timer=0;
start_r=5;
}
break;
case 5: //p3-p4
if(control_timer>10){
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]));
}
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]);
pr_temp1=((float)change(pr[4])-(float)change(pr[3]))/(float)tr[6];
control_timer=0;
start_r=7;
}
break;
case 7: //p4-p5
if(control_timer>10){
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]));
}
break;
case 8:
pwm(2,3,0);
start_r=9;
break;
}
}
}
}
void set_control(unsigned char on_flag){
if(on_flag==1){ //开阀门标志1开 2关
set_operate(eksset[0],1);
set_operate(eksset[1],1);
set_operate(eksset[2],1);
set_operate(eksset[3],1);
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);
set_operate(ejsset[3],2);
set_operate(ejsset[4],2);
}
}
/*****************************************************************************************
控制程序
*****************************************************************************************/
void control(){
unsigned int test;
if(picture_number!=9)return;
switch(key_data2){
case 1: //自动
if(key_data1==6){
set_control(1); //开SET1-SET4
YQ_ON()
test=(unsigned int)eyq[en]*100; //开氩气
delay_ms(test);
p_control();
test=(unsigned int)elq[en]*100;
delay_ms(test);
YQ_OFF()
set_control(2); //关SET1-SET4
}
break;
case 2: //半自动
if(key_data1==0)break;
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(k4_flag==0){
SET4_ON()
k4_flag=1;
}
else{
SET4_OFF()
k4_flag=0;
}
break;
case 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_ON()
test=(unsigned int)eyq[en]*100; //开氩气
delay_ms(test);
p_control();
test=(unsigned int)elq[en]*100;
delay_ms(test);
YQ_OFF()
set_control(2); //关SET1-SET4
start_flag=0;
k1_flag=0;
k2_flag=0;
k3_flag=0;
k4_flag=0;
k5_flag=0;
}
break;
case 3: // 手动
if(key_data1==0)break;
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(k4_flag==0){
SET4_ON()
k4_flag=1;
}
else{
SET4_OFF()
k4_flag=0;
}
break;
case 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_ON() //开氩气
test=(unsigned int)eyq[en]*100; //开氩气
delay_ms(test);
p_control(); //根据各种情况输出功率
test=(unsigned int)elq[en]*100;
delay_ms(test);
YQ_OFF()
start_flag=2;
setoff_flag=0x1f;
}
else if(start_flag==2){
switch(key_data1){
case 1:
SET1_OFF()
setoff_flag&=0x1e;
break;
case 2:
SET2_OFF()
setoff_flag&=0x1d;
break;
case 3:
SET3_OFF()
setoff_flag&=0x1b;
break;
case 4:
SET4_OFF()
setoff_flag&=0x17;
break;
case 5:
SET5_OFF()
setoff_flag&=0x0f;
break;
}
if(setoff_flag==0){
start_flag=0;
k1_flag=0;
k2_flag=0;
k3_flag=0;
k4_flag=0;
k5_flag=0;
}
}
case 4: //点动
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -