📄 pid.lst
字号:
916 1 BEGIN: if(urgent_stop==1)
917 1 {
918 2 urgent_stop=0;
919 2 err_ok=0;
920 2 EX1=1;
921 2 EX0=1;
922 2 }
923 1 IEN1=0X00;
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 16
924 1 send_enable=0;
925 1 rot_enable=0; //new
926 1 PWM1=0; //new
927 1 wire_enable=0; //new
928 1 PWM0=0; //new
929 1 work=0;
930 1 start=0;
931 1 start_rot=0;
932 1 start_wire=0;
933 1 stop_wire=0;
934 1 decrease=0;
935 1 need_para=0;
936 1 nonce_sec=0;
937 1 in_sector=0;
938 1 new_sector=0;
939 1 noans_ok=1;
940 1 S_ANSW=0;
941 1 // R_ANSW=0;
942 1 POINTER0=0;
943 1 SSUM=0;
944 1 POINTER1=0;
945 1 RSUM=0;
946 1 r_byte_nums=4;
947 1 send=0;
948 1 overtime=0;
949 1 receive_p_out=0;
950 1 receive_p_in=0;
951 1 demand=0;
952 1 resend=0;
953 1 ans=0;
954 1 p_b=0; //基值
955 1 temp_pulse_num=0;
956 1 temp_pulse_num1=0;
957 1 FINISH=0;
958 1 temp_FINISH=0;
959 1 rot_front=0;
960 1 rot_reverse=0;
961 1 rot_ok=0;
962 1 rot_stop=0;
963 1 rot_stop_ok=0;
964 1 rot_num=0;
965 1 new_rot_num=0;
966 1 rot_pid_ok=0;
967 1 average_r_num=0;
968 1 rot_difference=0;
969 1 rot_last_difference=0;
970 1 rot_last_last_difference=0;
971 1 wire_add=0;
972 1 wire_dec=0;
973 1 wire_ok=0;
974 1 r_slope_ok=1;
975 1 w_slope_ok=1;
976 1 wire_pid_num=0;
977 1 wire_pid_ok=0;
978 1 motor_stop=0;
979 1 retract=0;
980 1 c_cm0=0;
981 1 c_cm1=0;
982 1 k_r_p_add=0;
983 1 k_r_b_add=0;
984 1 k_r_p_dec=0;
985 1 k_r_b_dec=0;
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 17
986 1 temp_rot_vp=0;
987 1 temp_rot_vb=0;
988 1 temp_wire_vp=0;
989 1 temp_wire_vb=0;
990 1 retract_ok=0;
991 1 auto_return=0;
992 1 return_ok=0;
993 1 ask_return_ok=0;
994 1 to_begin=0;
995 1
996 1 PWMP=3; //23.5K
997 1 CTCON=CTCON|0X02; //CT0捕捉下降沿
998 1 tooth_num=10;
999 1 EX1=1;
1000 1 EX0=1;
1001 1 while(start==0)
1002 1 {
1003 2 if(called==1)
1004 2 {
1005 3 ini_sbuf(M_main,infor,com_calling,S_ANSW,0,0);
1006 3 s_byte_nums=get_byte_nums(infor);
1007 3 TR_noans();
1008 3 called=0;
1009 3 }
1010 2
1011 2 if(receive_p_out==1)
1012 2 {
1013 3 point=&pp.k2;
1014 3 for(p_sec=0;p_sec<24;p_sec++)
1015 3 *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
1016 3 pp.k1=rbuffer[50];
1017 3
1018 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
1019 3 s_byte_nums=4;
1020 3 TR_noans();
1021 3 demand=0;
1022 3 receive_p_out=0;
1023 3 }
1024 2
1025 2 if(receive_p_in==1)
1026 2 {
1027 3 point=&pp.x[nonce_sec][0];
1028 3 for(p_sec=0;p_sec<10;p_sec++)
1029 3 *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
1030 3
1031 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
1032 3 s_byte_nums=4;
1033 3 TR_noans();
1034 3 demand=0;
1035 3 receive_p_in=0;
1036 3 }
1037 2
1038 2 if(rot_front==1)
1039 2 {
1040 3 rot_dir=1;
1041 3 PWM0=204;
1042 3 rot_enable=1;
1043 3 rot_front=0;
1044 3 }
1045 2
1046 2 if(rot_reverse==1)
1047 2 {
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 18
1048 3 rot_dir=0;
1049 3 PWM0=204;
1050 3 rot_enable=1;
1051 3 rot_reverse=0;
1052 3 }
1053 2
1054 2 if(wire_add==1)
1055 2 {
1056 3 wire_dir=1;
1057 3 PWM1=204;
1058 3 wire_enable=1;
1059 3 wire_add=0;
1060 3 }
1061 2
1062 2 if(wire_dec==1)
1063 2 {
1064 3 wire_dir=0;
1065 3 PWM1=204;
1066 3 wire_enable=1;
1067 3 wire_dec=0;
1068 3 }
1069 2
1070 2 if(motor_stop==1)
1071 2 {
1072 3 PWM0=0;
1073 3 PWM1=0;
1074 3 wire_enable=0;
1075 3 rot_enable=0;
1076 3 rot_front=0;
1077 3 rot_reverse=0;
1078 3 wire_add=0;
1079 3 wire_dec=0;
1080 3 motor_stop=0;
1081 3 }
1082 2
1083 2 if(resend==1)
1084 2 {
1085 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
1086 3 s_byte_nums=4;
1087 3 TR_noans();
1088 3 resend=0;
1089 3 }
1090 2
1091 2 if(urgent_stop==1)
1092 2 goto BEGIN;
1093 2 }
1094 1
1095 1 get_v_r();
1096 1 if(r%10>=5)
1097 1 pulse_num=r/10+1;
1098 1 else
1099 1 pulse_num=r/10;
1100 1 pulse_num=pulse_num/2;
1101 1 pulse_num1=r/2;
1102 1 if(pp.k1==0)
1103 1 K21=OFF;
1104 1 else
1105 1 K21=pp.k21;
1106 1 const0=(float)(motor_v)*(float)(tooth_num);
1107 1 const0=(float)(const0*3.14);
1108 1 const0=(float)(const0/360/r); //motor_v*tooth_num*3.14*pp.d/360/r
1109 1 temp_data0=const0*pp.d/10;
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 19
1110 1 temp_data00=(float)(pp.dv21)/temp_data0;
1111 1 delt_rot=255*temp_data00;
1112 1 if(delt_rot==0)
1113 1 delt_rot=1;
1114 1 temp_data00=(float)(pp.v21_p)/temp_data0;
1115 1 rot_vp=255*temp_data00;
1116 1 temp_rot_vp=12;
1117 1 if(K21==ON)
1118 1 {
1119 2 temp_data00=(float)(pp.v21_b)/temp_data0;
1120 2 rot_vb=255*temp_data00;
1121 2 temp_rot_vb=12;
1122 2 }
1123 1 if(rot_vp>12)
1124 1 n_cm1=pp.t21*250/(rot_vp-12);
1125 1 else if(rot_vp<12)
1126 1 n_cm1=pp.t21*250/(12-rot_vp);
1127 1
1128 1 K3=pp.k3;
1129 1 if(pp.k1==0)
1130 1 K31=OFF;
1131 1 else
1132 1 K31=pp.k31;
1133 1 const1=1900; //6600*10*165*314
1134 1 temp_data00=(float)(pp.dv31)/(float)(const1);
1135 1 delt_wire=255*temp_data00;
1136 1 if(delt_wire==0)
1137 1 delt_wire=1;
1138 1 temp_data00=(float)(pp.v31_p)/(float)(const1);
1139 1 wire_vp=255*temp_data00;
1140 1 temp_wire_vp=12;
1141 1 if(K31==ON)
1142 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -