1

Dependencies:   mbed-dev-f303 FastPWM3

Revision:
53:32218a36df05
Parent:
52:d4d5e3414865
Child:
54:e201ae25e467
--- a/main.cpp	Sat Aug 08 13:43:20 2020 +0000
+++ b/main.cpp	Tue Sep 15 08:59:03 2020 +0000
@@ -37,7 +37,7 @@
 #include "math.h"
 #include "MA700Sensor.h"
 #include "joint_calibration.h"
-PreferenceWriter prefs(6);
+PreferenceWriter prefs(7);
 //PreferenceWriter prefs(7);
 
 
@@ -158,7 +158,7 @@
 void calibrate(void){
     gpio.enable->write(1);                                                      // Enable gate drive
     gpio.led->write(1);                                                    // Turn on status LED
-    //order_phases(&spi, &gpio, &controller, &prefs);                             // Check phase ordering
+    order_phases(&spi, &gpio, &controller, &prefs);                             // Check phase ordering
     calibrate(&spi, &gpio, &controller, &prefs);                                // Perform calibration procedure
     //j_calibrate(&ma700,&spi, &gpio, &controller, &prefs);
     //j_calibrate(&ma700,&gpio, &controller, &prefs);     
@@ -333,6 +333,7 @@
         else if(J_M_flag == 1)
         {
             controller.theta_mech = Joint_init + (1.0f/GR)*spi.GetMechPosition(); 
+            
             }
         
         
@@ -353,6 +354,7 @@
                 if(state_change){
                     enter_menu_state();
                     wucha=0 ; //shaorui add
+                    test_jointround_flag=0;
                     }
                 break;
             
@@ -447,6 +449,7 @@
         if(c == 27){
                 state = REST_MODE;
                 state_change = 1;
+                test_jointround_flag=0;
                 char_count = 0;
                 cmd_id = 0;
                 gpio.led->write(0);; 
@@ -495,6 +498,7 @@
                         prefs.load(); 
                     spi.SetMechOffset(M_OFFSET);
                     ma700.SetMechOffset(JOINT_M_OFFSET);
+                    J_M_flag=0;
                     printf("\n\r  Saved new M-J J-J zero position:  %.4f %.4f\n\r\n\r", M_OFFSET, JOINT_M_OFFSET);
                   /*
                     for(int i=0;i<300;i++)
@@ -599,7 +603,8 @@
     spi.SetElecOffset(E_OFFSET);                                                // Set position sensor offset
     spi.SetMechOffset(M_OFFSET);
     
-    pc.baud(460800);//pc.baud(921600); 
+    //pc.baud(460800);//pc.baud(921600); 
+    pc.baud(115000);
     //=====benk 2020 last version===//
     
     spi.Sample(1.0f);
@@ -628,7 +633,7 @@
     memcpy(&lut, &ENCODER_LUT, sizeof(lut));
     spi.WriteLUT(lut);  
     memcpy(&joint, &ENCODER_JOINT , sizeof(joint));
-    spi.WriteLUT(joint);                             
+    ma700.WriteLUT(joint);                             
                                                                // set serial baud rate
     wait(.01);
         printf("MP: %.3f   JP: %.3f\n\r",spi.GetMechPosition(),ma700.GetMechPosition());
@@ -661,9 +666,9 @@
                 controller.v_des = 0;
                 wait(1);
                 controller.p_des=0;
-                controller.v_des = 1.5f;
+                controller.v_des = 1.0f;
                 controller.kp = 0;
-                controller.kd = 5.0f;
+                controller.kd = 2.0f;
                 controller.t_ff = 0;
                 wait(.5); 
                // }
@@ -682,9 +687,9 @@
                 controller.v_des = 0;
                 wait(1);
                 controller.p_des=0;
-                controller.v_des = -1.5f;
+                controller.v_des = -1.0f;
                 controller.kp = 0;
-                controller.kd = 5.0f;
+                controller.kd = 2.0f;
                 controller.t_ff = 0;
                 wait(.5);
                 printf("test position:%.3f\n\r",(1.0f/GR)* spi.GetMechPosition());
@@ -713,8 +718,8 @@
 //            printf("J: %.3f  Mec: %.3f   Jerr: %.3f   JVerr: %.3f   Kp: %.3f   Kd: %.3f  \n\r",controller.theta_joint*57.2957795, controller.theta_mech*57.2957795, (controller.p_des - controller.theta_mech)*57.2957795,(controller.v_des - controller.dtheta_mech)*57.2957795, controller.kp,controller.kd);
             printf("Jraw:%.3f   J: %.3f  Mec: %.3f   N: %.3d   Nmod: %.3f   Mmod: %.3f \n\r",controller.theta_joint_raw*57.2957795,controller.theta_joint*57.2957795, controller.theta_mech*57.2957795, controller.Ncycle,controller.Ncycle_mod*57.2957795,controller.Mech_mod*57.2957795);
 
-             // printf("Pdes: %.3f  Vdes: %.3f   Kp: %.3f   Kd: %.3f   Tff: %.3f\n\r",controller.p_des*57.2957795, controller.v_des*57.2957795, controller.kp,controller.kd,controller.t_ff);
-             // printf("Prel: %.3f  Vrel: %.3f   T: %.3f \n\r",controller.theta_mech*57.2957795, controller.dtheta_mech*57.2957795, controller.i_q_filt*KT_OUT);
+              printf("Pdes: %.3f  Vdes: %.3f   Kp: %.3f   Kd: %.3f   Tff: %.3f\n\r",controller.p_des*57.2957795, controller.v_des*57.2957795, controller.kp,controller.kd,controller.t_ff);
+              printf("Prel: %.3f  Vrel: %.3f   T: %.3f \n\r",controller.theta_mech*57.2957795, controller.dtheta_mech*57.2957795, controller.i_q_filt*KT_OUT);
               count = 0;
               }