Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.32 KB | None | 0 0
  1.     if (VarModbus[INDICE_STATUSBIT1] & FLG_STATUSBI1_PID_EN)
  2.     { //Funzionamento in modalità PID
  3.  
  4.         if (OLD_INDICE_STATUSBIT1 == 1) // Esco dalla modalità PWM e passo a quella PID
  5.         {
  6.             OLD_INDICE_STATUSBIT1 = 0;
  7.             // Disattivo il PID
  8.             PidReset(&PID1, &Motore1);
  9.             PidReset(&PID2, &Motore2);
  10.         }
  11.  
  12.         /* **************************************************************** */
  13.         /* ************ SONO IN MODALITA' PID, ROUTINE "MAIN"  ************ */
  14.         /* **************************************************************** */
  15.         // Converto Vlineare in Giri al secondo per il PID
  16. //        Setpoint_M1 = Motore1.FL_Costante_Conversione_Vlin_to_Vang * (2048+500);
  17. //        Setpoint_M2 = Motore2.FL_Costante_Conversione_Vlin_to_Vang * (2048-500);
  18. //
  19. //        Setpoint_M1 = 1600; //Motore1.FL_Costante_Conversione_Vlin_to_Vang * ((float) VarModbus[INDICE_PWM_CH1]);
  20. //        Setpoint_M2 = 1600; //Motore2.FL_Costante_Conversione_Vlin_to_Vang * ((float) VarModbus[INDICE_PWM_CH2]);
  21.  
  22.  
  23.         Setpoint_M1 = Motore1.FL_Costante_Conversione_Vlin_to_Vang * ((float)VarModbus[INDICE_PWM_CH1]);
  24.         Setpoint_M2 = Motore2.FL_Costante_Conversione_Vlin_to_Vang * ((float)VarModbus[INDICE_PWM_CH2]);
  25.  
  26.     }
  27.     else
  28.     {
  29.         /* **************************************************************** */
  30.         /* ************ SONO IN MODALITA' PWM, ROUTINE "MAIN"  ************ */
  31.         /* **************************************************************** */
  32.  
  33.         if (OLD_INDICE_STATUSBIT1 == 0) // Esco dalla modalità PID e passo a quella PWM
  34.         {
  35.             OLD_INDICE_STATUSBIT1 = 1;
  36.             // Disattivo il PID
  37.             PidReset(&PID1, &Motore1);
  38.             PidReset(&PID2, &Motore2);
  39.         }
  40.  
  41.         // In modalità PWM il dato delle word INDICE_PWM_CHx lo mando direttamente
  42.         // al modulo PWM del micro perchè rappresenta già un PWM.
  43.         SetDCMCPWM1(1, 2048 + (int) (VarModbus[INDICE_PWM_CH1]), 0); // setta il PWM  del motore
  44.         SetDCMCPWM1(2, 2048 + (int) (VarModbus[INDICE_PWM_CH2]), 0); // setta il PWM  del motore
  45.         VarModbus[INDICE_RD_PWM_CH1] = VarModbus[INDICE_PWM_CH1]; // aggiorno PWM in lettura
  46.         VarModbus[INDICE_RD_PWM_CH2] = VarModbus[INDICE_PWM_CH2]; // aggiorno PWM in lettura
  47.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement