21#include "spi_interface.h"
22#include "gpio_rp2350.h"
25using namespace _SPI0_;
26using namespace _SPI1_;
29void SPI0_IRQ_Handler(
void);
30void SPI1_IRQ_Handler(
void);
34const uint16_t CPHA_0 = 0x0000;
35const uint16_t CPHA_1 = 0x0080;
36const uint16_t CPOL_0 = 0x0000;
37const uint16_t CPOL_1 = 0x0040;
38const uint16_t _4_BIT = 0x0003;
39const uint16_t _5_BIT = 0x0004;
40const uint16_t _6_BIT = 0x0005;
41const uint16_t _7_BIT = 0x0006;
42const uint16_t _8_BIT = 0x0007;
43const uint16_t _9_BIT = 0x0008;
44const uint16_t _10_BIT = 0x0009;
45const uint16_t _11_BIT = 0x000a;
46const uint16_t _12_BIT = 0x000b;
47const uint16_t _13_BIT = 0x000c;
48const uint16_t _14_BIT = 0x000d;
49const uint16_t _15_BIT = 0x000e;
50const uint16_t _16_BIT = 0x000f;
53const bool MASTER =
true;
54const bool CLIENT =
false;
65 bool spi_master = SPI::MASTER,
66 uint16_t mode = SPI::CPOL_0 | SPI::CPHA_0 | SPI::_8_BIT);
70 int16_t spiTxRx(
const uint8_t *txbuf, uint8_t *rxbuf, uint16_t len)
override;
71 int16_t spiTx (
const uint8_t *txbuf, uint16_t len)
override ;
72 int16_t spiRx (uint8_t txbyte, uint8_t *rxbuf, uint16_t len)
override;
74 void setSpeed(uint32_t)
override;
75 void generateCS(
bool val)
override;
76 void setCS(
bool val)
override;
78 void spiAttachRxIrq(function<
void(uint8_t data)> f)
override;
82 friend void SPI0_IRQ_Handler(
void);
83 friend void SPI1_IRQ_Handler(
void);
104 static int8_t _spi_miso_pins[2][6];
106 static function<void(uint8_t)> _intHandler[2];