First draft HMC5883 magnetometer sensor using physical quantities, outputting via serial port using std::cout on mbed os 5
I2CBusDevice.h@8:c5dc1ce10722, 2020-03-26 (annotated)
- Committer:
- skyscraper
- Date:
- Thu Mar 26 21:13:44 2020 +0000
- Revision:
- 8:c5dc1ce10722
- Child:
- 9:87a7169b4d5c
Try to make magnetometer more generic. Next to do a mag service and put in own thread
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
skyscraper | 8:c5dc1ce10722 | 1 | |
skyscraper | 8:c5dc1ce10722 | 2 | #ifndef SKYSCRAPER_MBED_I2C_BUS_DEVICE_HPP_INCLUDED |
skyscraper | 8:c5dc1ce10722 | 3 | #define SKYSCRAPER_MBED_I2C_BUS_DEVICE_HPP_INCLUDED |
skyscraper | 8:c5dc1ce10722 | 4 | |
skyscraper | 8:c5dc1ce10722 | 5 | #include "mbed.h" |
skyscraper | 8:c5dc1ce10722 | 6 | |
skyscraper | 8:c5dc1ce10722 | 7 | struct I2CBusDevice{ |
skyscraper | 8:c5dc1ce10722 | 8 | constexpr I2CBusDevice(I2C& i2cIn,uint8_t addressIn) |
skyscraper | 8:c5dc1ce10722 | 9 | : m_i2c{i2cIn},m_address{addressIn}{} |
skyscraper | 8:c5dc1ce10722 | 10 | int i2c_write(const char *data, int length,bool repeated = false)const |
skyscraper | 8:c5dc1ce10722 | 11 | { |
skyscraper | 8:c5dc1ce10722 | 12 | return m_i2c.write(m_address,data,length, repeated); |
skyscraper | 8:c5dc1ce10722 | 13 | } |
skyscraper | 8:c5dc1ce10722 | 14 | |
skyscraper | 8:c5dc1ce10722 | 15 | int i2c_read(char *data, int length, bool repeated=false)const |
skyscraper | 8:c5dc1ce10722 | 16 | { |
skyscraper | 8:c5dc1ce10722 | 17 | return m_i2c.read(m_address,data,length,repeated); |
skyscraper | 8:c5dc1ce10722 | 18 | } |
skyscraper | 8:c5dc1ce10722 | 19 | |
skyscraper | 8:c5dc1ce10722 | 20 | private: |
skyscraper | 8:c5dc1ce10722 | 21 | I2C & m_i2c; |
skyscraper | 8:c5dc1ce10722 | 22 | int const m_address; |
skyscraper | 8:c5dc1ce10722 | 23 | }; |
skyscraper | 8:c5dc1ce10722 | 24 | |
skyscraper | 8:c5dc1ce10722 | 25 | #endif |