diff options
| author | JF <jf@codingfield.com> | 2019-12-07 16:11:50 (GMT) |
|---|---|---|
| committer | JF <jf@codingfield.com> | 2019-12-07 16:11:50 (GMT) |
| commit | 6fbb6c8f70b2103fd88d8d9da3ce884a283b1bfd (patch) | |
| tree | 000f0851f3517b9b8a40c16d4c6bf34fd834b24c /src/drivers/SpiMaster.h | |
| parent | 0db16bd8279826878e9d2d5ba63e21c4e15c35bf (diff) | |
Convert Spi and GFX to C++.
Diffstat (limited to 'src/drivers/SpiMaster.h')
| -rw-r--r-- | src/drivers/SpiMaster.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h new file mode 100644 index 0000000..10cab12 --- /dev/null +++ b/src/drivers/SpiMaster.h @@ -0,0 +1,32 @@ +#pragma once +#include <cstdint> +#include <cstddef> +#include <array> + +namespace Pinetime { + namespace Drivers { + class SpiMaster { + public:; + enum class SpiModule : uint8_t {SPI0, SPI1}; + enum class BitOrder : uint8_t {Msb_Lsb, Lsb_Msb}; + enum class Modes : uint8_t {Mode0, Mode1, Mode2, Mode3}; + enum class Frequencies : uint8_t {Freq8Mhz}; + struct Parameters { + BitOrder bitOrder; + Modes mode; + Frequencies Frequency; + uint8_t pinSCK; + uint8_t pinMOSI; + uint8_t pinMISO; + uint8_t pinCSN; + }; + bool Init(const SpiModule spi, const Parameters& params); + + bool Write(const uint8_t* data, size_t size); + + private: + NRF_SPI_Type * spiBaseAddress; + uint8_t pinCsn; + }; + } +} |
