X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=main.c;h=f06bc44b4f92191d8be816fe52afd4c7a8d0ccb0;hb=5d39ce22b6dc5693c52e402491cd1dcaf968c6b4;hp=e434690b0d80b115296eb201e27d4621fd1a0e4b;hpb=5dec35802d72ab8ed3e63a46b3ea8829a2c6a3bf;p=protos%2Frc_servos.git diff --git a/main.c b/main.c index e434690..f06bc44 100644 --- a/main.c +++ b/main.c @@ -120,7 +120,7 @@ static void poll_spi(void) SPDR = byte1_tx.u8; } spi_out_idx ++; - if (spi_out_idx >= NB_SERVO) + if (spi_out_idx >= NB_SERVO * 2) spi_out_idx = 0; /* RX */ @@ -173,16 +173,16 @@ static void poll_input_capture(void) if ((TIFR1 & _BV(ICF1)) == 0) return; - sei(); - icp = ICR1; cli(); + icp = ICR1; + sei(); - rising = TCCR1B & _BV(ICES1); + rising = !!(TCCR1B & _BV(ICES1)); /* change the edge type */ TCCR1B ^= _BV(ICES1); - /* clear the flag */ + /* clear the flag by writing a one */ TIFR1 = TIFR1 | _BV(ICF1); diff = icp - icp_prev;