📄 mainloop.lst
字号:
840 1 ex = (long)(*((long *)(&(XBYTE[lpdata(cur_order,4)]))));
841 1 ey = (long)(*((long *)(&(XBYTE[lpdata(cur_order,5)]))));
842 1
843 1 l1 = ex-bx;
844 1 l2 = ey-by;
845 1 if (l1 < 0)
846 1 l1 = -l1;
847 1 if (l2 < 0)
848 1 l2 = -l2;
849 1 xyt = XBYTE[xytype(cur_order)];
850 1 uvt = XBYTE[uvtype(cur_order)];
851 1 cur_work_seg = (long)(*((long *)(&(XBYTE[ncorder(cur_order)]))));
852 1 if (xyt == 1){ //直线
853 2 if (anti_work_flag == 0)
854 2 cur_off ++;
855 2 else
856 2 cur_off --;
857 2 if (l1 > l2){ //X计数
858 3 if (ex > bx){ //ex > bx
859 4 if (anti_work_flag == 0){
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 15
860 5 cur_x ++;
861 5 x_z();
862 5 }
863 4 else{
864 5 cur_x --;
865 5 x_z();
866 5 }
867 4 }
868 3 else{ //ex < bx
869 4 if (anti_work_flag == 0){
870 5 cur_x --;
871 5 x_f();
872 5 }
873 4 else{
874 5 cur_x ++;
875 5 x_z();
876 5 }
877 4 }
878 3 if (anti_work_flag == 0){
879 4 if (cur_x == ex) //末点
880 4 bz = 1;
881 4 else
882 4 bz = 0;
883 4 }
884 3 else{
885 4 if (cur_x == bx) //末点
886 4 bz = 1;
887 4 else
888 4 bz = 0;
889 4 }
890 3 if (bz == 1){
891 4 if (anti_work_flag == 0){
892 5 if (ey > cur_y)
893 5 y_z();
894 5 else if (ey < cur_y)
895 5 y_f();
896 5 cur_y = ey;
897 5 XBYTE[xytype(cur_order)] = 0;
898 5 cur_order1 = (cur_order+1)%MAX_ORDER;
899 5 cur_order = (cur_order+1)%MAX_ORDER;
900 5 cur_off = 0;
901 5 if (diandbz == 1){
902 6 diandbz = 0;
903 6 work_status = 0;
904 6 cc = 0x8c;
905 6 RAMCS = 1;
906 6 MCU_D12CS = 0;
907 6 D12_WriteEndpoint(3, 1, &cc);
908 6 }
909 5 else{
910 6 if (XBYTE[xytype(cur_order)] == 0){
911 7 work_status = 2;
912 7 e_order = 0;
913 7 cur_order1 = 0;
914 7 cur_order = 0;
915 7 send_req_order(0);
916 7 close_gao_pin();
917 7 }
918 6 }
919 5 }
920 4 else{
921 5 if (by > cur_y)
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 16
922 5 y_z();
923 5 else if (by < cur_y);
924 5 y_f();
925 5 cur_y = by;
926 5 cur_off = 0;
927 5 anti_work_flag = 0;
928 5 cur_jing = old_cur_jing;
929 5 }
930 4 }
931 3 else{ //中间点
932 4 l3 = by + 1.0*(ey-by)*(cur_x-bx)/(ex-bx);
933 4 if (l3 != cur_y){ //Y也要走
934 5 if (ey > by)
935 5 y_z();
936 5 else
937 5 y_f();
938 5 cur_y = l3;
939 5 }
940 4 }
941 3 }
942 2 else{//Y计数
943 3 if (ey > by){ //ey > by
944 4 if (anti_work_flag == 0){
945 5 cur_y ++;
946 5 y_z();
947 5 }
948 4 else{
949 5 cur_y --;
950 5 y_f();
951 5 }
952 4 }
953 3 else{ // ey < by
954 4 if (anti_work_flag == 0){
955 5 cur_y --;
956 5 y_f();
957 5 }
958 4 else{
959 5 cur_y ++;
960 5 y_z();
961 5 }
962 4 }
963 3 if (anti_work_flag == 0){
964 4 if (cur_y == ey) //末点
965 4 bz = 1;
966 4 else
967 4 bz = 0;
968 4 }
969 3 else{
970 4 if (cur_y == by) //末点
971 4 bz = 1;
972 4 else
973 4 bz = 0;
974 4 }
975 3 if (bz == 1){
976 4 if (anti_work_flag == 0){
977 5 if (ex > cur_x)
978 5 x_z();
979 5 else if (ex < cur_x)
980 5 x_f();
981 5 cur_x = ex;
982 5 XBYTE[xytype(cur_order)] = 0;
983 5 cur_order1 = (cur_order+1)%MAX_ORDER;
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 17
984 5 cur_order = (cur_order+1)%MAX_ORDER;
985 5 cur_off = 0;
986 5 if (diandbz == 1){
987 6 diandbz = 0;
988 6 work_status = 0;
989 6 cc = 0x8c;
990 6 RAMCS = 1;
991 6 MCU_D12CS = 0;
992 6 D12_WriteEndpoint(3, 1, &cc);
993 6 }
994 5 else{
995 6 if (XBYTE[xytype(cur_order)] == 0){
996 7 work_status = 2;
997 7 e_order = 0;
998 7 cur_order1 = 0;
999 7 cur_order = 0;
1000 7 send_req_order(0);
1001 7 close_gao_pin();
1002 7 }
1003 6 }
1004 5 }
1005 4 else{
1006 5 if (bx > cur_x)
1007 5 x_z();
1008 5 else if (bx < cur_x)
1009 5 x_f();
1010 5 cur_x = bx;
1011 5 anti_work_flag = 0;
1012 5 cur_jing = old_cur_jing;
1013 5 cur_off = 0;
1014 5 }
1015 4 }
1016 3 else{//中间点
1017 4 l3 = bx + 1.0*(ex-bx)*(cur_y-by)/(ey-by);
1018 4 if (l3 != cur_x){//X也要走
1019 5 if (ex > bx)
1020 5 x_z();
1021 5 else
1022 5 x_f();
1023 5 cur_x = l3;
1024 5 }
1025 4 }
1026 3 }
1027 2 }
1028 1 else if ((xyt == 2)||(xyt == 3)){
1029 2 bx = (long)(*((long *)(&(XBYTE[lpdata(cur_order,0)]))));
1030 2 by = (long)(*((long *)(&(XBYTE[lpdata(cur_order,1)]))));
1031 2 r = (ex*1.0-bx)*(ex*1.0-bx)+(ey*1.0-by)*(ey*1.0-by);
1032 2
1033 2 if ((cur_x > bx)&&(cur_y >= by)){
1034 3 if (cur_x-bx > cur_y-by)
1035 3 cc = 1;
1036 3 else
1037 3 cc = 2;
1038 3 }
1039 2 else if ((cur_x <= bx)&&(cur_y > by)){
1040 3 if (bx-cur_x > cur_y-by)
1041 3 cc = 4;
1042 3 else
1043 3 cc = 3;
1044 3 }
1045 2 else if ((cur_x < bx)&&(cur_y <= by)){
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 18
1046 3 if (bx-cur_x > by-cur_y)
1047 3 cc = 5;
1048 3 else
1049 3 cc = 6;
1050 3 }
1051 2 else{
1052 3 if (cur_x-bx > by-cur_y)
1053 3 cc = 8;
1054 3 else
1055 3 cc = 7;
1056 3 }
1057 2
1058 2 if (xyt == 2){//ni yuan
1059 3 if ((cc == 2)||(cc == 3)){
1060 4 if (XBYTE[xy(cur_order)] == 0){
1061 5 if (anti_work_flag == 0)
1062 5 cur_off ++;
1063 5 else
1064 5 cur_off --;
1065 5 }
1066 4 if (anti_work_flag == 0){
1067 5 cur_x --;
1068 5 x_f();
1069 5 }
1070 4 else{
1071 5 cur_x ++;
1072 5 x_z();
1073 5 }
1074 4 }
1075 3 else if ((cc == 6)||(cc == 7)){
1076 4 if (XBYTE[xy(cur_order)] == 0){
1077 5 if (anti_work_flag == 0)
1078 5 cur_off ++;
1079 5 else
1080 5 cur_off --;
1081 5 }
1082 4 if (anti_work_flag == 0){
1083 5 cur_x ++;
1084 5 x_z();
1085 5 }
1086 4 else{
1087 5 cur_x --;
1088 5 x_f();
1089 5 }
1090 4 }
1091 3 else if ((cc == 4)||(cc == 5)){
1092 4 if (XBYTE[xy(cur_order)] == 1){
1093 5 if (anti_work_flag == 0)
1094 5 cur_off ++;
1095 5 else
1096 5 cur_off --;
1097 5 }
1098 4 if (anti_work_flag == 0){
1099 5 cur_y --;
1100 5 y_f();
1101 5 }
1102 4 else{
1103 5 cur_y ++;
1104 5 y_z();
1105 5 }
1106 4 }
1107 3 else{
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 19
1108 4 if (XBYTE[xy(cur_order)] == 1){
1109 5 if (anti_work_flag == 0)
1110 5 cur_off ++;
1111 5 else
1112 5 cur_off --;
1113 5 }
1114 4 if (anti_work_flag == 0){
1115 5 cur_y ++;
1116 5 y_z();
1117 5 }
1118 4 else{
1119 5 cur_y --;
1120 5 y_f();
1121 5 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -