Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/thirdpin/libopencm3_cpp_extensions.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnastasiia Lazareva <n_lazareva@mail.ru>2017-08-29 19:22:55 +0300
committerAnastasiia Lazareva <n_lazareva@mail.ru>2017-08-29 19:22:55 +0300
commit02d0e5fe169fbf8c8d6fa985096987c1a18919d5 (patch)
treef4836d7ac5defeb596e16893b7ede7c5a723c831
parent7e198362ed7d3ee9f49ff46778fe04c130efa86f (diff)
FIX: horrible-terrible bug in i2c module
-rw-r--r--cm3cpp_i2c.cpp14
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;