I2C Error fixes

This commit is contained in:
Theodor Teslia 2023-03-17 14:15:22 +01:00
parent 08e61cb300
commit 94f9cdd884
2 changed files with 8 additions and 6 deletions

View File

@ -10,12 +10,13 @@ namespace sta {
uint16_t address;
Mutex* mutex;
bool master;
bool blocking;
public:
I2cDevice(uint16_t address_10bit, Mutex* mutex=nullptr, bool master=false);
I2cDevice(uint16_t address_10bit, Mutex* mutex=nullptr, bool master=false, bool blocking=true);
virtual bool transmit(uint8_t* data, uint16_t size, bool blocking=true) = 0;
virtual bool transmit(uint8_t* data, uint16_t size) = 0;
virtual bool receive(uint8_t* data, uint16_t size, bool blocking=true) = 0;
virtual bool receive(uint8_t* data, uint16_t size) = 0;
virtual void acquire();
@ -23,4 +24,4 @@ namespace sta {
};
}
#endif // #ifdef STA_I2C_HPP
#endif // STA_I2C_HPP

View File

@ -1,10 +1,11 @@
#include <sta/i2c.hpp>
namespace sta {
I2cDevice::I2cDevice(uint16_t address_7bit, Mutex* mutex, bool master) {
I2cDevice::I2cDevice(uint16_t address_7bit, Mutex* mutex, bool master, bool blocking) {
this->address = address_7bit << 1;
this->mutex = mutex;
this->master = master;
this->blocking = blocking;
}
void I2cDevice::acquire() {
@ -18,4 +19,4 @@ namespace sta {
mutex->release();
}
}
}
}