Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (VarModbus[INDICE_STATUSBIT1] & FLG_STATUSBI1_PID_EN)
- { //Funzionamento in modalità PID
- if (OLD_INDICE_STATUSBIT1 == 1) // Esco dalla modalità PWM e passo a quella PID
- {
- OLD_INDICE_STATUSBIT1 = 0;
- // Disattivo il PID
- PidReset(&PID1, &Motore1);
- PidReset(&PID2, &Motore2);
- }
- /* **************************************************************** */
- /* ************ SONO IN MODALITA' PID, ROUTINE "MAIN" ************ */
- /* **************************************************************** */
- // Converto Vlineare in Giri al secondo per il PID
- // Setpoint_M1 = Motore1.FL_Costante_Conversione_Vlin_to_Vang * (2048+500);
- // Setpoint_M2 = Motore2.FL_Costante_Conversione_Vlin_to_Vang * (2048-500);
- //
- // Setpoint_M1 = 1600; //Motore1.FL_Costante_Conversione_Vlin_to_Vang * ((float) VarModbus[INDICE_PWM_CH1]);
- // Setpoint_M2 = 1600; //Motore2.FL_Costante_Conversione_Vlin_to_Vang * ((float) VarModbus[INDICE_PWM_CH2]);
- Setpoint_M1 = Motore1.FL_Costante_Conversione_Vlin_to_Vang * ((float)VarModbus[INDICE_PWM_CH1]);
- Setpoint_M2 = Motore2.FL_Costante_Conversione_Vlin_to_Vang * ((float)VarModbus[INDICE_PWM_CH2]);
- }
- else
- {
- /* **************************************************************** */
- /* ************ SONO IN MODALITA' PWM, ROUTINE "MAIN" ************ */
- /* **************************************************************** */
- if (OLD_INDICE_STATUSBIT1 == 0) // Esco dalla modalità PID e passo a quella PWM
- {
- OLD_INDICE_STATUSBIT1 = 1;
- // Disattivo il PID
- PidReset(&PID1, &Motore1);
- PidReset(&PID2, &Motore2);
- }
- // In modalità PWM il dato delle word INDICE_PWM_CHx lo mando direttamente
- // al modulo PWM del micro perchè rappresenta già un PWM.
- SetDCMCPWM1(1, 2048 + (int) (VarModbus[INDICE_PWM_CH1]), 0); // setta il PWM del motore
- SetDCMCPWM1(2, 2048 + (int) (VarModbus[INDICE_PWM_CH2]), 0); // setta il PWM del motore
- VarModbus[INDICE_RD_PWM_CH1] = VarModbus[INDICE_PWM_CH1]; // aggiorno PWM in lettura
- VarModbus[INDICE_RD_PWM_CH2] = VarModbus[INDICE_PWM_CH2]; // aggiorno PWM in lettura
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement