#ifndef STA_SPI_SETTINGS_HPP #define STA_SPI_SETTINGS_HPP #include namespace sta { enum class SpiClkPolarity { LOW, HIGH }; enum class SpiClkPhase { EDGE_1, EDGE_2 }; enum class SpiMode { MODE_0, MODE_1, MODE_2, MODE_3 }; enum class SpiDataSize { BIT_8, BIT_16 }; enum class SpiBitOrder { MSB, LSB }; enum class SpiBaudRatePrescaler { BRP_2, BRP_4, BRP_8, BRP_16, BRP_32, BRP_64, BRP_128, BRP_256 }; struct SpiSettings { SpiMode mode; SpiDataSize dataSize; SpiBitOrder bitOrder; uint32_t clkSpeed; SpiBaudRatePrescaler baudRatePrescaler; /**< Subject to change */ }; SpiClkPolarity getSpiClkPolarity(SpiMode mode); SpiClkPhase getSpiClkPhase(SpiMode mode); SpiMode getSpiMode(SpiClkPolarity polarity, SpiClkPhase phase); } // namespace sta #endif // STA_SPI_SETTINGS_HPP