API
 
Loading...
Searching...
No Matches
MCP3208.h
Go to the documentation of this file.
1#ifndef MCP3208_H_AA185758_F169_4B8A_8158_6E4588F5B55F
2#define MCP3208_H_AA185758_F169_4B8A_8158_6E4588F5B55F
3
4#include <cstdint>
5#include <linux/spi/spidev.h>
6
7namespace MCP3208Lib {
8
9enum class Mode : std::uint8_t {
10 SINGLE = 1,
11 DIFFERENTIAL = 0
12};
13
14class MCP3208 {
15public:
16 static const int DEFAULT_SPI_DEV = 0;
17 static const int DEFAULT_SPI_CHANNEL = 0;
18 static const int SPI_5V_BAUD = 3600000;
19 static const int SPI_2_7V_BAUD = 1350000;
20 static const int DEFAULT_SPI_BAUD = SPI_2_7V_BAUD;
21
22 //https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-interface.html
23 static const int DEFAULT_SPI_FLAGS = SPI_MODE_0;
24
25 MCP3208(
26 const int dev = DEFAULT_SPI_DEV,
27 const int channel = DEFAULT_SPI_CHANNEL,
28 const int baud = DEFAULT_SPI_BAUD,
29 const int flags = DEFAULT_SPI_FLAGS) noexcept;
30
31 virtual ~MCP3208();
32
33 void connect();
34 void disconnect();
35 unsigned short read(const std::uint8_t channel, const Mode m = Mode::SINGLE) const;
36
37
38protected:
40 int _dev;
42 int _baud;
43 int _flags;
44
45};
46
47};
48
49#endif
static const int DEFAULT_SPI_CHANNEL
Definition MCP3208.h:17
unsigned short read(const std::uint8_t channel, const Mode m=Mode::SINGLE) const
Definition MCP3208.cpp:62
static const int DEFAULT_SPI_DEV
Definition MCP3208.h:16
static const int DEFAULT_SPI_FLAGS
Definition MCP3208.h:23
static const int SPI_5V_BAUD
Definition MCP3208.h:18
static const int DEFAULT_SPI_BAUD
Definition MCP3208.h:20
static const int SPI_2_7V_BAUD
Definition MCP3208.h:19
virtual ~MCP3208()
Definition MCP3208.cpp:20