thesis_bldc_controller/Examples/SPISLAVEDMA/SPISLAVEDMA(3)/examples/driver_examples.c

64 lines
1.6 KiB
C

/*
* Code generated from Atmel Start.
*
* This file will be overwritten when reconfiguring your Atmel Start project.
* Please copy examples or other code you want to keep to a separate file
* to avoid losing it when reconfiguring.
*/
#include "driver_examples.h"
#include "driver_init.h"
#include "utils.h"
/**
* Example of using TARGET_IO to write "Hello World" using the IO abstraction.
*/
void TARGET_IO_example(void)
{
struct io_descriptor *io;
usart_sync_get_io_descriptor(&TARGET_IO, &io);
usart_sync_enable(&TARGET_IO);
io_write(io, (uint8_t *)"Hello World!", 12);
}
/**
* Example of using SPI_0 to write "Hello World" using the IO abstraction.
*
* Since the driver is asynchronous we need to use statically allocated memory for string
* because driver initiates transfer and then returns before the transmission is completed.
*
* Once transfer has been completed the tx_cb function will be called.
*/
static uint8_t example_SPI_0[12] = "Hello World!";
static void tx_complete_cb_SPI_0(struct _dma_resource *resource)
{
/* Transfer completed */
}
void SPI_0_example(void)
{
struct io_descriptor *io;
spi_m_dma_get_io_descriptor(&SPI_0, &io);
spi_m_dma_register_callback(&SPI_0, SPI_M_DMA_CB_TX_DONE, tx_complete_cb_SPI_0);
spi_m_dma_enable(&SPI_0);
io_write(io, example_SPI_0, 12);
}
/**
* Example of using SPI_1 to write "Hello World" using the IO abstraction.
*/
static uint8_t example_SPI_1[12] = "Hello World!";
void SPI_1_example(void)
{
struct io_descriptor *io;
spi_s_sync_get_io_descriptor(&SPI_1, &io);
spi_s_sync_enable(&SPI_1);
io_write(io, example_SPI_1, 12);
}