Compare commits
2 Commits
8f88cdccea
...
dd37fa0411
| Author | SHA1 | Date | |
|---|---|---|---|
| dd37fa0411 | |||
| 430ad479fc |
14
hardware.hpp
14
hardware.hpp
@@ -68,9 +68,11 @@ class Hardware {
|
|||||||
constexpr uint8_t ControlRegC = DataBitsValues.regCVal | ParityVal | StopBitsVal | ModeVal;
|
constexpr uint8_t ControlRegC = DataBitsValues.regCVal | ParityVal | StopBitsVal | ModeVal;
|
||||||
|
|
||||||
if constexpr (UseDoubleSpeed)
|
if constexpr (UseDoubleSpeed)
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() |= (1 << CtrlFlagsA::SPEED_2X);
|
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() =
|
||||||
|
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() | (1 << CtrlFlagsA::SPEED_2X);
|
||||||
else
|
else
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() &= ~(1 << CtrlFlagsA::SPEED_2X);
|
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() =
|
||||||
|
*getRegPtr<Registers::CTRL_STAT_REG_A_ADDR>() & ~(1 << CtrlFlagsA::SPEED_2X);
|
||||||
|
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() = ControlRegB;
|
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() = ControlRegB;
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_C_ADDR>() = ControlRegC;
|
*getRegPtr<Registers::CTRL_STAT_REG_C_ADDR>() = ControlRegC;
|
||||||
@@ -130,12 +132,14 @@ class Hardware {
|
|||||||
|
|
||||||
static void enableDataRegEmptyInt() FORCE_INLINE
|
static void enableDataRegEmptyInt() FORCE_INLINE
|
||||||
{
|
{
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() |= (1 << CtrlFlagsB::DATA_REG_EMPTY_INT_ENABLE);
|
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() =
|
||||||
|
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() | (1 << CtrlFlagsB::DATA_REG_EMPTY_INT_ENABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void disableDataRegEmptyInt() FORCE_INLINE
|
static void disableDataRegEmptyInt() FORCE_INLINE
|
||||||
{
|
{
|
||||||
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() &= ~(1 << CtrlFlagsB::DATA_REG_EMPTY_INT_ENABLE);
|
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() =
|
||||||
|
*getRegPtr<Registers::CTRL_STAT_REG_B_ADDR>() & ~(1 << CtrlFlagsB::DATA_REG_EMPTY_INT_ENABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -275,6 +279,7 @@ template <class Registers, typename CtrlFlagsA, typename CtrlFlagsB, typename Ct
|
|||||||
class BlockingHardware {
|
class BlockingHardware {
|
||||||
public:
|
public:
|
||||||
using data_t = typename cfg::data_t;
|
using data_t = typename cfg::data_t;
|
||||||
|
static constexpr auto BAUD_RATE = cfg::BAUD_RATE;
|
||||||
static constexpr auto DATA_BITS = cfg::DATA_BITS;
|
static constexpr auto DATA_BITS = cfg::DATA_BITS;
|
||||||
|
|
||||||
static void init() FORCE_INLINE
|
static void init() FORCE_INLINE
|
||||||
@@ -320,6 +325,7 @@ template <class Registers, typename CtrlFlagsA, typename CtrlFlagsB, typename Ct
|
|||||||
class InterruptHardware {
|
class InterruptHardware {
|
||||||
public:
|
public:
|
||||||
using data_t = typename cfg::data_t;
|
using data_t = typename cfg::data_t;
|
||||||
|
static constexpr auto BAUD_RATE = cfg::BAUD_RATE;
|
||||||
static constexpr auto DATA_BITS = cfg::DATA_BITS;
|
static constexpr auto DATA_BITS = cfg::DATA_BITS;
|
||||||
|
|
||||||
static void txByte(const data_t &byte) FORCE_INLINE
|
static void txByte(const data_t &byte) FORCE_INLINE
|
||||||
|
|||||||
@@ -158,3 +158,4 @@ void USART1_UDRE_vect() __attribute__((signal));
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef FORCE_INLINE
|
#undef FORCE_INLINE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user