test

Revision:
5:420cb56093d3
Parent:
4:7564d0ffd595
Child:
6:c21017e969af
diff -r 7564d0ffd595 -r 420cb56093d3 main.cpp
--- a/main.cpp	Thu Jun 18 07:31:09 2020 +0000
+++ b/main.cpp	Fri Jun 19 10:47:30 2020 +0000
@@ -74,7 +74,7 @@
 
 
 long t_ult_recepcion;   // guarda tiempo ultima recepción
-byte nMando;            // numero de mando 0=babor 1=estribor
+//byte nMando;            // numero de mando 0=babor 1=estribor
 int servo;              // servo recibido en ultima comunicacion
 volatile float latitud;
 volatile float longitud;
@@ -88,6 +88,8 @@
 volatile enEstadoDireccion estado_direccion;
 volatile byte EstadoAnteriorServo;       //Guarda estado anterior del servo para salir de piloto-automatico o rumbo
 volatile byte estado_otro_servo;         // Estado del otro servo
+volatile int posicion_otro_servo;        // Posicion del otro servo
+volatile float rumbo_otro_servo;         // Rumbo del otro servo
 volatile int retardoActualizacion;       // para no visualizar estado durante este tiempo en ms
 volatile bool act_display;               // flag para actualizar display
 volatile bool trama_estado_valida;
@@ -361,10 +363,11 @@
             procesa_posicion_timones();     // Pocesa activación y posición timones, llamada cada 250ms
             actualiza_timones();            // ACTUALIZA TIMONES
             procesa_rumbo_GPS();            // SIMULA RUMBO SEGUN TIMON PARA GPS
+            sincroniza_servos();            // SINCRONIZA LOS DOS SERVOS SEGUN SU ESTADO
         }
 
         if(recibidoEstadoServo==true){            //Si ha recibido estado del otro servo está a true para sincronizacion
-            if(timerRS485.read_ms()>=110){
+            if(timerRS485.read_ms()>=120){
                 envia_estado_mando();
                 recibidoEstadoServo = false;
                 timerRS485.reset();
@@ -374,6 +377,7 @@
             int espera = (babor_estribor==0)? 240 :260;
             if(timerRS485.read_ms()>=espera){      // Si es servo de babor = 240ms, estribor = 260ms, evita colision
                 envia_estado_mando();
+                recibidoEstadoServo = false;
                 timerRS485.reset();
             }
         }