47 lines
1.0 KiB
C
47 lines
1.0 KiB
C
|
#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();
|
||
|
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);
|
||
|
};
|
||
|
}
|
||
|
}
|