eive-obsw/mission/devices/max1227.h
Robin Mueller 3387a71399
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
more sus testing
2022-02-16 15:16:36 +01:00

47 lines
1.1 KiB
C++

#ifndef MISSION_DEVICES_MAX1227_H_
#define MISSION_DEVICES_MAX1227_H_
#include <cstdint>
namespace max1227 {
enum ScanModes : uint8_t {
CHANNELS_0_TO_N = 0b00,
CHANNEL_N_TO_HIGHEST = 0b01,
N_REPEATEDLY = 0b10,
N_ONCE = 0b11
};
enum ClkSel : uint8_t {
INT_CONV_INT_TIMED_CNVST_AS_CNVST = 0b00,
INT_CONV_EXT_TIMED_CNVST = 0b01,
// Default mode upon power-up
INT_CONV_INT_TIMED_CNVST_AS_AIN = 0b10,
// Use external SPI clock for conversion and timing
EXT_CONV_EXT_TIMED = 0b11
};
enum RefSel : uint8_t {
INT_REF_WITH_WAKEUP = 0b00,
// No wakeup delay needed
EXT_REF_SINGLE_ENDED = 0b01,
INT_REF_NO_WAKEUP = 0b10,
// No wakeup delay needed
EXT_REF_DIFFERENTIAL = 0b11
};
enum DiffSel : uint8_t {
NONE_0 = 0b00,
NONE_1 = 0b01,
// One unipolar config byte follows the setup byte
UNIPOLAR_CFG = 0b10,
// One bipolar config byte follows the setup byte
BIPOLAR_CFG = 0b11
};
uint8_t buildConvByte(ScanModes scanMode, uint8_t channel, bool readTemp);
uint8_t buildSetupByte(ClkSel clkSel, RefSel refSel, DiffSel diffSel);
} // namespace max1227
#endif /* MISSION_DEVICES_MAX1227_H_ */