mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
7d5463e5e6
Occasionally, the I2C driver races with the STM32 I2C peripheral at the end of a bus cycle. This leaves the bus in an errored state and the stop condition is not properly asserted on the bus. The polling for the stopped condition was previously implemented in ISR context since it was expected to be nearly instananeous. In the error condition, however, the stop condition will never happen. The polling for this case is now done by the initiating task (or mainloop on the AHRS) to prevent the timeout condition from triggering the watchdog. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1623 ebee16cc-31ac-478f-84a7-5cbb03baadba