test

Dependencies:   SimpleDMA mbed-rtos mbed

Fork of spiDMAtest by Siva ram

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "SimpleDMA.h"
00003 #include "dmaSPIslave.h"
00004 
00005 
00006     #define PAYLOAD_LENGTH 16
00007     #define PAY_SPI_MOSI PTD6
00008     #define PAY_SPI_MISO PTD7
00009     #define PAY_SPI_CLK PTD5
00010     #define PAY_SPI_CS PTE16
00011     
00012    // dmaSPISlave spi(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS);
00013 
00014 dmaSPISlave spi(PTD6, PTD7, PTD5,PTD4 ); 
00015 RawSerial pc(USBTX, USBRX);
00016 //DigitalOut ledg(LED_GREEN);
00017 
00018 bool flag = false;
00019 
00020 void do_this(void){
00021     flag = true;
00022 }
00023 
00024 int main(){
00025     pc.baud(9600);
00026     pc.printf("inside main\r\n");
00027     spi.format(8,0);
00028     spi.frequency(10000000);
00029     
00030     uint8_t buffer[PAYLOAD_LENGTH] = {0};
00031     pc.printf("welcome to dma test, start sending data now\r\n");
00032 
00033 //    initialise the buffer for dma
00034     spi.bulkRead_init(buffer, PAYLOAD_LENGTH, &do_this);
00035 //    start dma read
00036     spi.bulkRead_start();
00037     
00038     while(true){
00039         if(flag){
00040             flag = false;
00041             //ledg = !ledg;
00042             
00043 
00044             for(int i = 0 ; i < PAYLOAD_LENGTH ; ++i){
00045                 pc.printf("data %d   %d  \r\n",i, buffer[i]);            }
00046           pc.printf("\r\n");
00047 
00048             //start dma again after handling the data
00049             spi.bulkRead_start();
00050         }
00051     }
00052     
00053 }