diff options
author | JF002 <JF002@users.noreply.github.com> | 2021-01-20 20:11:56 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 20:11:56 +0000 |
commit | a0f2fa8469f3a2c0f5f2f914ad174029da321cc0 (patch) | |
tree | 4ac5f59cd088aea9af51d2d183376de279808e63 /src/drivers/Hrs3300.h | |
parent | 35d4f6d4875b68ff8fdecb436e3bc0a6f91099f3 (diff) | |
parent | 68674cec53e2e2add1c0a0b109e5a0e7d9ed5479 (diff) |
Merge pull request #169 from JF002/heartRateSensor
Heart rate sensor
Diffstat (limited to 'src/drivers/Hrs3300.h')
-rw-r--r-- | src/drivers/Hrs3300.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/drivers/Hrs3300.h b/src/drivers/Hrs3300.h new file mode 100644 index 00000000..c34d55c6 --- /dev/null +++ b/src/drivers/Hrs3300.h @@ -0,0 +1,47 @@ +#pragma once + +#include "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(); + uint16_t ReadHrs(); + uint16_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); + + }; + } +} |