commiting examples
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
extern DmacDescriptor _descriptor_section[DMAC_CH_NUM];
|
||||
extern DmacDescriptor _write_back_section[DMAC_CH_NUM];
|
||||
|
||||
#define SLAVE_BUFFER_SIZE 64
|
||||
#define SLAVE_BUFFER_SIZE 32
|
||||
|
||||
/* DATA transfer/reception completion flags */
|
||||
volatile uint8_t spi_slave_tx_complete = 0;
|
||||
@@ -21,9 +21,7 @@ volatile uint8_t received_data_len = 0;
|
||||
|
||||
static uint8_t rx_buffer[SLAVE_BUFFER_SIZE] = {0};
|
||||
static uint8_t tx_buffer[SLAVE_BUFFER_SIZE] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
|
||||
19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
|
||||
35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
|
||||
51,52,53,54,55,56,57,58,59,60,61,62,63};
|
||||
19,20,21,22,23,24,25,26,27,28,29,30,31};
|
||||
|
||||
/* Register SPI Slave DMA channel callbacks */
|
||||
void register_dma_spi_slave_callback(uint16_t channel, void *cb)
|
||||
@@ -60,7 +58,7 @@ static void spi_slave_rx_complete_cb(struct _dma_resource *const resource)
|
||||
/* DMA Transfer complete callback for SPI Slave TX */
|
||||
static void spi_slave_tx_complete_cb(struct _dma_resource *const resource)
|
||||
{
|
||||
tx_buffer[63] += 1;
|
||||
tx_buffer[SLAVE_BUFFER_SIZE] += 1;
|
||||
//hri_sercomspi_clear_INTEN_TXC_bit((SercomSpi *)(SPI_0.dev.prvt));
|
||||
_dma_enable_transaction(CONF_SERCOM_5_RECEIVE_DMA_CHANNEL, false);
|
||||
_dma_enable_transaction(CONF_SERCOM_5_TRANSMIT_DMA_CHANNEL, false);
|
||||
@@ -90,12 +88,12 @@ void spi_slave_init()
|
||||
{
|
||||
_dma_set_source_address(CONF_SERCOM_5_RECEIVE_DMA_CHANNEL,
|
||||
(uint32_t *)&(((SercomSpi *)(SPI_0.dev.prvt))->DATA.reg));
|
||||
_dma_set_destination_address(CONF_SERCOM_5_RECEIVE_DMA_CHANNEL, rx_buffer);
|
||||
_dma_set_destination_address(CONF_SERCOM_5_RECEIVE_DMA_CHANNEL, rx_buffer+SLAVE_BUFFER_SIZE);
|
||||
_dma_set_data_amount(CONF_SERCOM_5_RECEIVE_DMA_CHANNEL, SLAVE_BUFFER_SIZE);
|
||||
|
||||
_dma_set_destination_address(CONF_SERCOM_5_TRANSMIT_DMA_CHANNEL,
|
||||
(uint32_t *)&(((SercomSpi *)(SPI_0.dev.prvt))->DATA.reg));
|
||||
_dma_set_source_address(CONF_SERCOM_5_TRANSMIT_DMA_CHANNEL, tx_buffer);
|
||||
_dma_set_source_address(CONF_SERCOM_5_TRANSMIT_DMA_CHANNEL, tx_buffer+SLAVE_BUFFER_SIZE);
|
||||
_dma_set_data_amount(CONF_SERCOM_5_TRANSMIT_DMA_CHANNEL, SLAVE_BUFFER_SIZE);
|
||||
|
||||
/* callback */
|
||||
|
||||
Reference in New Issue
Block a user