58 const bool spi_master = SPI::MASTER,
59 uint16_t mode = SPI::CPOL_0 | SPI::CPHA_0 | SPI::MSB_FIRST |
60 SPI::_8_BIT | SPI::CLK_SMCLK);
63 const bool spi_master = SPI::MASTER,
64 uint16_t mode = SPI::CPOL_0 | SPI::CPHA_0 | SPI::MSB_FIRST |
65 SPI::_8_BIT | SPI::CLK_SMCLK);
69 int16_t spiTxRx(
const uint8_t *txbuf, uint8_t *rxbuf, uint16_t len)
override;
70 int16_t spiTx (
const uint8_t *txbuf, uint16_t len)
override ;
71 int16_t spiRx (uint8_t txbyte, uint8_t *rxbuf, uint16_t len)
override;
73 void setSpeed(uint32_t)
override;
74 void generateCS(
bool val)
override;
75 void setCS(
bool val)
override;
77 void spiAttachRxIrq(function<
void(uint8_t data)> f)
override;
81 friend void EUSCIA0_SPI_IRQHandler(
void);
82 friend void EUSCIA1_SPI_IRQHandler(
void);
83 friend void EUSCIA2_SPI_IRQHandler(
void);
84 friend void EUSCIA3_SPI_IRQHandler(
void);
85 friend void EUSCIB0_SPI_IRQHandler(
void);
86 friend void EUSCIB1_SPI_IRQHandler(
void);
87 friend void EUSCIB2_SPI_IRQHandler(
void);
88 friend void EUSCIB3_SPI_IRQHandler(
void);
98 volatile uint16_t & _EUSCI_CTLW0;
99 volatile uint16_t & _EUSCI_BRW;
100 volatile uint16_t & _EUSCI_STATW;
101 volatile uint16_t & _EUSCI_RXBUF;
102 volatile uint16_t & _EUSCI_TXBUF;
103 volatile uint16_t & _EUSCI_IE;
104 volatile uint16_t & _EUSCI_IFG;
105 volatile uint16_t & _EUSCI_IV;
115 static function<void(uint8_t)> _intHandler[8];