/* * 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); }