DMA for Science thread
Dependencies: SimpleDMA mbed-rtos mbed
Fork of spiDMAtest by
main.cpp
- Committer:
- ee12b079
- Date:
- 2016-09-24
- Revision:
- 4:9cc2653d3e83
- Parent:
- 2:16545dbc88ae
File content as of revision 4:9cc2653d3e83:
#include "mbed.h" #include "SimpleDMA.h" #include "dmaSPIslave.h" #define PAYLOAD_LENGTH 6723 #define PAY_SPI_MOSI PTE18 #define PAY_SPI_MISO PTE19 #define PAY_SPI_CLK PTE17 #define PAY_SPI_CS PTE16 Timer T; dmaSPISlave spi(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS); RawSerial pc(USBTX, USBRX); DigitalOut ledg(PTB11); bool flag = false; void do_this(void){ flag = true; } int main(){ pc.baud(1200); pc.printf("inside main\r\n"); spi.format(8,0); spi.frequency(1000000); uint8_t buffer[PAYLOAD_LENGTH] = {0}; pc.printf("welcome to dma test, start sending data now\r\n"); // initialise the buffer for dma spi.bulkRead_init(buffer, PAYLOAD_LENGTH, &do_this); // start dma read spi.bulkRead_start(); T.start(); while(true){ if(flag){ flag = false; ledg = !ledg; pc.printf("re %f\n",T.read()); /*for(int i = 0 ; i < PAYLOAD_LENGTH ; ++i){ pc.printf("%02x ", buffer[i]); } pc.printf("\r\n");*/ // start dma again after handling the data spi.bulkRead_start(); } } }