diff --git a/src/modm/platform/i2c/bitbang/bitbang_i2c_master_impl.hpp b/src/modm/platform/i2c/bitbang/bitbang_i2c_master_impl.hpp index 0afc434a8c..e503781ba4 100644 --- a/src/modm/platform/i2c/bitbang/bitbang_i2c_master_impl.hpp +++ b/src/modm/platform/i2c/bitbang/bitbang_i2c_master_impl.hpp @@ -18,6 +18,7 @@ #ifndef MODM_SOFTWARE_BITBANG_I2C_HPP # error "Don't include this file directly, use 'bitbang_i2c_master.hpp' instead!" #endif +#include // debugging for serious dummies /* @@ -314,6 +315,8 @@ template bool modm::platform::BitBangI2cMaster::write(uint8_t data) { + modm::this_fiber::yield(); + DEBUG_SW_I2C('W'); // shift through all 8 bits for(uint_fast8_t i = 0; i < 8; ++i) @@ -359,6 +362,8 @@ template bool modm::platform::BitBangI2cMaster::read(uint8_t &data, bool ack) { + modm::this_fiber::yield(); + DEBUG_SW_I2C('R'); // release data line SDA::set(); diff --git a/src/modm/platform/spi/bitbang/bitbang_spi_master_impl.hpp b/src/modm/platform/spi/bitbang/bitbang_spi_master_impl.hpp index 8c8c418210..ea2f614f7d 100644 --- a/src/modm/platform/spi/bitbang/bitbang_spi_master_impl.hpp +++ b/src/modm/platform/spi/bitbang/bitbang_spi_master_impl.hpp @@ -17,6 +17,7 @@ #ifndef MODM_SOFTWARE_BITBANG_SPI_MASTER_HPP # error "Don't include this file directly, use 'bitbang_spi_master.hpp' instead!" #endif +#include template uint16_t @@ -84,6 +85,8 @@ template uint8_t modm::platform::BitBangSpiMaster::transferBlocking(uint8_t data) { + modm::this_fiber::yield(); + for (uint_fast8_t ii = 0; ii < 8; ++ii) { // CPHA=1, sample on falling edge