I's very dependent to the hardware choice. It can be something between - in the best case around 1.8ms (WMP only conf or ITG3200 with a I2C speed at 400kHz) - in the worse case up to 6ms (WMP+NK in interleaving mode with the obligation to wait at least 3ms between each read)
- around 3.3ms with a genuine WMP only conf with I2C bus at 100kHz
With another ACC than NK, it depends also on the inclination because we use a fast approximation for low angles (around 1ms less)
Ok so it's between 555 and 111Hz (average 303Hz) ?
It seems pretty fast considering the heavy use of float type variables and the complexity of the algorithm ... at 16MIPS it's (average) 52800 clock cycles. The float library must be very well tuned
Regards, Thomas.
PS : I'm French, "Alexinparis" refers to your location I suppose ?
I try to avoid float variables when I can as the float are much more slower to compute than integers. It's the key to keep the cycle time low, and to keep the code size small. It's not always possible due to overflow risk or precision.