diff options
author | Anastasiia Lazareva <n_lazareva@mail.ru> | 2017-08-29 19:22:55 +0300 |
---|---|---|
committer | Anastasiia Lazareva <n_lazareva@mail.ru> | 2017-08-29 19:22:55 +0300 |
commit | 02d0e5fe169fbf8c8d6fa985096987c1a18919d5 (patch) | |
tree | f4836d7ac5defeb596e16893b7ede7c5a723c831 | |
parent | 7e198362ed7d3ee9f49ff46778fe04c130efa86f (diff) |
FIX: horrible-terrible bug in i2c module
-rw-r--r-- | cm3cpp_i2c.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/cm3cpp_i2c.cpp b/cm3cpp_i2c.cpp index a3ce9b1..e06577f 100644 --- a/cm3cpp_i2c.cpp +++ b/cm3cpp_i2c.cpp @@ -168,10 +168,10 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result uint32_t reg __attribute__((unused)); Result result = OK; - _counter_ms->start(); + //_counter_ms->start(); _send_start(); - while (!(_get_flag_status(MASTER_MODE_SELECTED))) { + while (_get_flag_status(MASTER_MODE_SELECTED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; @@ -179,7 +179,7 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result } _send_7bit_address(cfg.device_address, WRITE); - while (!_get_flag_status(MASTER_TRANSMITTER_MODE_SELECTED)) { + while (_get_flag_status(MASTER_TRANSMITTER_MODE_SELECTED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; @@ -192,7 +192,7 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result { _send_data(cfg.write_buf[index]); - while (!(_get_flag_status(MASTER_BYTE_TRANSMITTED))) { + while (_get_flag_status(MASTER_BYTE_TRANSMITTED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; @@ -206,7 +206,7 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result uint16_t temp; if(cfg.read_len != 0) { _send_start(); - while (!(_get_flag_status(MASTER_MODE_SELECTED))) { + while (_get_flag_status(MASTER_MODE_SELECTED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; @@ -216,7 +216,7 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result _enable_ack(); _send_7bit_address(cfg.device_address, READ); - while (!_get_flag_status(MASTER_RECEIVER_MODE_SELECTED)) { + while (_get_flag_status(MASTER_RECEIVER_MODE_SELECTED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; @@ -231,7 +231,7 @@ auto I2c::master_transfer(MasterTransferCfg cfg) -> Result size_to_read--; if (!size_to_read) _disable_ack(); - while (!_get_flag_status(MASTER_BYTE_RECEIVED)) { + while (_get_flag_status(MASTER_BYTE_RECEIVED) == Result::ERROR) { if(_counter_ms->timeout()) { result = TIMEOUT; break; |