ref: e5b73212f6addcfdb5e306df63d7135e543c4f8d
src/drivers/Hrs3300.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#pragma once #include "drivers/TwiMaster.h" namespace Pinetime { namespace Drivers { class Hrs3300 { public: enum class Registers : uint8_t { Id = 0x00, Enable = 0x01, EnableHen = 0x80, C1dataM = 0x08, C0DataM = 0x09, C0DataH = 0x0a, PDriver = 0x0c, C1dataH = 0x0d, C1dataL = 0x0e, C0dataL = 0x0f, Res = 0x16, Hgain = 0x17 }; Hrs3300(TwiMaster& twiMaster, uint8_t twiAddress); Hrs3300(const Hrs3300&) = delete; Hrs3300& operator=(const Hrs3300&) = delete; Hrs3300(Hrs3300&&) = delete; Hrs3300& operator=(Hrs3300&&) = delete; void Init(); void Enable(); void Disable(); uint32_t ReadHrs(); uint32_t ReadAls(); void SetGain(uint8_t gain); void SetDrive(uint8_t drive); private: TwiMaster& twiMaster; uint8_t twiAddress; void WriteRegister(uint8_t reg, uint8_t data); uint8_t ReadRegister(uint8_t reg); }; } } |