Pedro Campos
/
SERVOS_V0_3
test
Diff: main.cpp
- 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(); } }