From 031067ba070a16380309717423ce25ad6f0fa38c Mon Sep 17 00:00:00 2001 From: polymurph Date: Mon, 23 Aug 2021 08:30:10 +0200 Subject: [PATCH] implemented I2C interface --- interfaces/i2c.hpp | 40 ++++++++++++++++++++++++++++++++++++++++ main.cpp | 4 +--- runtest | Bin 33624 -> 0 bytes 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 interfaces/i2c.hpp delete mode 100755 runtest diff --git a/interfaces/i2c.hpp b/interfaces/i2c.hpp new file mode 100644 index 0000000..7348b78 --- /dev/null +++ b/interfaces/i2c.hpp @@ -0,0 +1,40 @@ +#ifndef _I2C_HPP_ +#define _I2C_HPP_ + +#include + +template +struct I2C +{ + uint8_t readByte(const uint8_t& address, const uint8_t& reg) + { + return static_cast(this)->readByteImpl(address, reg); + } + + uint16_t readWord(const uint8_t& address, const uint8_t& reg) + { + return static_cast(this)->readWordImpl(address,reg); + } + + uint8_t writeByte(const uint8_t& address, const uint8_t& data) + { + return static_cast(this)->writeByteImpl(address,data); + } + + uint8_t writeWord(const uint8_t& address, const uint8_t& reg, const uint8_t& data) + { + return static_cast(this)->writeWordImpl(address, reg, data); + } + + void writeBuffer(const uint8_t& address, const uint8_t* buffer, uint8_t len) + { + static_cast(this)->writeBufferImpl(address, buffer, len); + } + + void readBuffer(const uint8_t& address, const uint8_t* buffer, uint8_t len) + { + static_cast(this)->readBufferImpl(address, buffer, len); + } +}; + +#endif // _I2C_HPP_ \ No newline at end of file diff --git a/main.cpp b/main.cpp index e35d528..058572b 100644 --- a/main.cpp +++ b/main.cpp @@ -18,10 +18,9 @@ Pin_Raspberry rpin; Pin_PC pcpin; +// spi stuff SPI_dummy spi; - Pin_PC chipSelectPin; - SPICH spiCH(chipSelectPin, spi); template @@ -34,7 +33,6 @@ void dummy() { rpin.write(1); std::cout << "Dummy" << std::endl; - } void foo() diff --git a/runtest b/runtest deleted file mode 100755 index 602907eb073969644b9531ad50bf9f5da300384a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33624 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 U(wdZ1`3os9<2uWh!Il*N1@Mz&)c^nh